
/*
   +----------------------------------------------------------------------+
   | HipHop for PHP                                                       |
   +----------------------------------------------------------------------+
   | Copyright (c) 2010-2016 Facebook, Inc. (http://www.facebook.com)     |
   | Copyright (c) 1997-2010 The PHP Group                                |
   +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |
   | available through the world-wide-web at the following url:           |
   | http://www.php.net/license/3_01.txt                                  |
   | If you did not receive a copy of the PHP license and are unable to   |
   | obtain it through the world-wide-web, please send a note to          |
   | license@php.net so we can mail you a copy immediately.               |
   +----------------------------------------------------------------------+
*/

#include "hphp/zend/html-table.h"

/**************************************************************************
***************************************************************************
**        THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY IT.        **
***************************************************************************
** Please change html_tables/generate-html-table.py instead and then     **
** run it in order to generate this file                                 **
***************************************************************************
**************************************************************************/

namespace HPHP {

static const charset_table_t entity_table_cs_8859_1 {
  {0x0, 0x0},
  {0x1, 0x1},
  {0x2, 0x2},
  {0x3, 0x3},
  {0x4, 0x4},
  {0x5, 0x5},
  {0x6, 0x6},
  {0x7, 0x7},
  {0x8, 0x8},
  {0x9, 0x9},
  {0xa, 0xa},
  {0xb, 0xb},
  {0xc, 0xc},
  {0xd, 0xd},
  {0xe, 0xe},
  {0xf, 0xf},
  {0x10, 0x10},
  {0x11, 0x11},
  {0x12, 0x12},
  {0x13, 0x13},
  {0x14, 0x14},
  {0x15, 0x15},
  {0x16, 0x16},
  {0x17, 0x17},
  {0x18, 0x18},
  {0x19, 0x19},
  {0x1a, 0x1a},
  {0x1b, 0x1b},
  {0x1c, 0x1c},
  {0x1d, 0x1d},
  {0x1e, 0x1e},
  {0x1f, 0x1f},
  {0x20, 0x20},
  {0x21, 0x21},
  {0x22, 0x22},
  {0x23, 0x23},
  {0x24, 0x24},
  {0x25, 0x25},
  {0x26, 0x26},
  {0x27, 0x27},
  {0x28, 0x28},
  {0x29, 0x29},
  {0x2a, 0x2a},
  {0x2b, 0x2b},
  {0x2c, 0x2c},
  {0x2d, 0x2d},
  {0x2e, 0x2e},
  {0x2f, 0x2f},
  {0x30, 0x30},
  {0x31, 0x31},
  {0x32, 0x32},
  {0x33, 0x33},
  {0x34, 0x34},
  {0x35, 0x35},
  {0x36, 0x36},
  {0x37, 0x37},
  {0x38, 0x38},
  {0x39, 0x39},
  {0x3a, 0x3a},
  {0x3b, 0x3b},
  {0x3c, 0x3c},
  {0x3d, 0x3d},
  {0x3e, 0x3e},
  {0x3f, 0x3f},
  {0x40, 0x40},
  {0x41, 0x41},
  {0x42, 0x42},
  {0x43, 0x43},
  {0x44, 0x44},
  {0x45, 0x45},
  {0x46, 0x46},
  {0x47, 0x47},
  {0x48, 0x48},
  {0x49, 0x49},
  {0x4a, 0x4a},
  {0x4b, 0x4b},
  {0x4c, 0x4c},
  {0x4d, 0x4d},
  {0x4e, 0x4e},
  {0x4f, 0x4f},
  {0x50, 0x50},
  {0x51, 0x51},
  {0x52, 0x52},
  {0x53, 0x53},
  {0x54, 0x54},
  {0x55, 0x55},
  {0x56, 0x56},
  {0x57, 0x57},
  {0x58, 0x58},
  {0x59, 0x59},
  {0x5a, 0x5a},
  {0x5b, 0x5b},
  {0x5c, 0x5c},
  {0x5d, 0x5d},
  {0x5e, 0x5e},
  {0x5f, 0x5f},
  {0x60, 0x60},
  {0x61, 0x61},
  {0x62, 0x62},
  {0x63, 0x63},
  {0x64, 0x64},
  {0x65, 0x65},
  {0x66, 0x66},
  {0x67, 0x67},
  {0x68, 0x68},
  {0x69, 0x69},
  {0x6a, 0x6a},
  {0x6b, 0x6b},
  {0x6c, 0x6c},
  {0x6d, 0x6d},
  {0x6e, 0x6e},
  {0x6f, 0x6f},
  {0x70, 0x70},
  {0x71, 0x71},
  {0x72, 0x72},
  {0x73, 0x73},
  {0x74, 0x74},
  {0x75, 0x75},
  {0x76, 0x76},
  {0x77, 0x77},
  {0x78, 0x78},
  {0x79, 0x79},
  {0x7a, 0x7a},
  {0x7b, 0x7b},
  {0x7c, 0x7c},
  {0x7d, 0x7d},
  {0x7e, 0x7e},
  {0x7f, 0x7f},
  {0x80, 0x80},
  {0x81, 0x81},
  {0x82, 0x82},
  {0x83, 0x83},
  {0x84, 0x84},
  {0x85, 0x85},
  {0x86, 0x86},
  {0x87, 0x87},
  {0x88, 0x88},
  {0x89, 0x89},
  {0x8a, 0x8a},
  {0x8b, 0x8b},
  {0x8c, 0x8c},
  {0x8d, 0x8d},
  {0x8e, 0x8e},
  {0x8f, 0x8f},
  {0x90, 0x90},
  {0x91, 0x91},
  {0x92, 0x92},
  {0x93, 0x93},
  {0x94, 0x94},
  {0x95, 0x95},
  {0x96, 0x96},
  {0x97, 0x97},
  {0x98, 0x98},
  {0x99, 0x99},
  {0x9a, 0x9a},
  {0x9b, 0x9b},
  {0x9c, 0x9c},
  {0x9d, 0x9d},
  {0x9e, 0x9e},
  {0x9f, 0x9f},
  {0xa0, 0xa0},
  {0xa1, 0xa1},
  {0xa2, 0xa2},
  {0xa3, 0xa3},
  {0xa4, 0xa4},
  {0xa5, 0xa5},
  {0xa6, 0xa6},
  {0xa7, 0xa7},
  {0xa8, 0xa8},
  {0xa9, 0xa9},
  {0xaa, 0xaa},
  {0xab, 0xab},
  {0xac, 0xac},
  {0xad, 0xad},
  {0xae, 0xae},
  {0xaf, 0xaf},
  {0xb0, 0xb0},
  {0xb1, 0xb1},
  {0xb2, 0xb2},
  {0xb3, 0xb3},
  {0xb4, 0xb4},
  {0xb5, 0xb5},
  {0xb6, 0xb6},
  {0xb7, 0xb7},
  {0xb8, 0xb8},
  {0xb9, 0xb9},
  {0xba, 0xba},
  {0xbb, 0xbb},
  {0xbc, 0xbc},
  {0xbd, 0xbd},
  {0xbe, 0xbe},
  {0xbf, 0xbf},
  {0xc0, 0xc0},
  {0xc1, 0xc1},
  {0xc2, 0xc2},
  {0xc3, 0xc3},
  {0xc4, 0xc4},
  {0xc5, 0xc5},
  {0xc6, 0xc6},
  {0xc7, 0xc7},
  {0xc8, 0xc8},
  {0xc9, 0xc9},
  {0xca, 0xca},
  {0xcb, 0xcb},
  {0xcc, 0xcc},
  {0xcd, 0xcd},
  {0xce, 0xce},
  {0xcf, 0xcf},
  {0xd0, 0xd0},
  {0xd1, 0xd1},
  {0xd2, 0xd2},
  {0xd3, 0xd3},
  {0xd4, 0xd4},
  {0xd5, 0xd5},
  {0xd6, 0xd6},
  {0xd7, 0xd7},
  {0xd8, 0xd8},
  {0xd9, 0xd9},
  {0xda, 0xda},
  {0xdb, 0xdb},
  {0xdc, 0xdc},
  {0xdd, 0xdd},
  {0xde, 0xde},
  {0xdf, 0xdf},
  {0xe0, 0xe0},
  {0xe1, 0xe1},
  {0xe2, 0xe2},
  {0xe3, 0xe3},
  {0xe4, 0xe4},
  {0xe5, 0xe5},
  {0xe6, 0xe6},
  {0xe7, 0xe7},
  {0xe8, 0xe8},
  {0xe9, 0xe9},
  {0xea, 0xea},
  {0xeb, 0xeb},
  {0xec, 0xec},
  {0xed, 0xed},
  {0xee, 0xee},
  {0xef, 0xef},
  {0xf0, 0xf0},
  {0xf1, 0xf1},
  {0xf2, 0xf2},
  {0xf3, 0xf3},
  {0xf4, 0xf4},
  {0xf5, 0xf5},
  {0xf6, 0xf6},
  {0xf7, 0xf7},
  {0xf8, 0xf8},
  {0xf9, 0xf9},
  {0xfa, 0xfa},
  {0xfb, 0xfb},
  {0xfc, 0xfc},
  {0xfd, 0xfd},
  {0xfe, 0xfe},
  {0xff, 0xff},
};

static const charset_table_t entity_table_cs_8859_5 {
  {0x0, 0x0},
  {0x1, 0x1},
  {0x2, 0x2},
  {0x3, 0x3},
  {0x4, 0x4},
  {0x5, 0x5},
  {0x6, 0x6},
  {0x7, 0x7},
  {0x8, 0x8},
  {0x9, 0x9},
  {0xa, 0xa},
  {0xb, 0xb},
  {0xc, 0xc},
  {0xd, 0xd},
  {0xe, 0xe},
  {0xf, 0xf},
  {0x10, 0x10},
  {0x11, 0x11},
  {0x12, 0x12},
  {0x13, 0x13},
  {0x14, 0x14},
  {0x15, 0x15},
  {0x16, 0x16},
  {0x17, 0x17},
  {0x18, 0x18},
  {0x19, 0x19},
  {0x1a, 0x1a},
  {0x1b, 0x1b},
  {0x1c, 0x1c},
  {0x1d, 0x1d},
  {0x1e, 0x1e},
  {0x1f, 0x1f},
  {0x20, 0x20},
  {0x21, 0x21},
  {0x22, 0x22},
  {0x23, 0x23},
  {0x24, 0x24},
  {0x25, 0x25},
  {0x26, 0x26},
  {0x27, 0x27},
  {0x28, 0x28},
  {0x29, 0x29},
  {0x2a, 0x2a},
  {0x2b, 0x2b},
  {0x2c, 0x2c},
  {0x2d, 0x2d},
  {0x2e, 0x2e},
  {0x2f, 0x2f},
  {0x30, 0x30},
  {0x31, 0x31},
  {0x32, 0x32},
  {0x33, 0x33},
  {0x34, 0x34},
  {0x35, 0x35},
  {0x36, 0x36},
  {0x37, 0x37},
  {0x38, 0x38},
  {0x39, 0x39},
  {0x3a, 0x3a},
  {0x3b, 0x3b},
  {0x3c, 0x3c},
  {0x3d, 0x3d},
  {0x3e, 0x3e},
  {0x3f, 0x3f},
  {0x40, 0x40},
  {0x41, 0x41},
  {0x42, 0x42},
  {0x43, 0x43},
  {0x44, 0x44},
  {0x45, 0x45},
  {0x46, 0x46},
  {0x47, 0x47},
  {0x48, 0x48},
  {0x49, 0x49},
  {0x4a, 0x4a},
  {0x4b, 0x4b},
  {0x4c, 0x4c},
  {0x4d, 0x4d},
  {0x4e, 0x4e},
  {0x4f, 0x4f},
  {0x50, 0x50},
  {0x51, 0x51},
  {0x52, 0x52},
  {0x53, 0x53},
  {0x54, 0x54},
  {0x55, 0x55},
  {0x56, 0x56},
  {0x57, 0x57},
  {0x58, 0x58},
  {0x59, 0x59},
  {0x5a, 0x5a},
  {0x5b, 0x5b},
  {0x5c, 0x5c},
  {0x5d, 0x5d},
  {0x5e, 0x5e},
  {0x5f, 0x5f},
  {0x60, 0x60},
  {0x61, 0x61},
  {0x62, 0x62},
  {0x63, 0x63},
  {0x64, 0x64},
  {0x65, 0x65},
  {0x66, 0x66},
  {0x67, 0x67},
  {0x68, 0x68},
  {0x69, 0x69},
  {0x6a, 0x6a},
  {0x6b, 0x6b},
  {0x6c, 0x6c},
  {0x6d, 0x6d},
  {0x6e, 0x6e},
  {0x6f, 0x6f},
  {0x70, 0x70},
  {0x71, 0x71},
  {0x72, 0x72},
  {0x73, 0x73},
  {0x74, 0x74},
  {0x75, 0x75},
  {0x76, 0x76},
  {0x77, 0x77},
  {0x78, 0x78},
  {0x79, 0x79},
  {0x7a, 0x7a},
  {0x7b, 0x7b},
  {0x7c, 0x7c},
  {0x7d, 0x7d},
  {0x7e, 0x7e},
  {0x7f, 0x7f},
  {0x80, 0x80},
  {0x81, 0x81},
  {0x82, 0x82},
  {0x83, 0x83},
  {0x84, 0x84},
  {0x85, 0x85},
  {0x86, 0x86},
  {0x87, 0x87},
  {0x88, 0x88},
  {0x89, 0x89},
  {0x8a, 0x8a},
  {0x8b, 0x8b},
  {0x8c, 0x8c},
  {0x8d, 0x8d},
  {0x8e, 0x8e},
  {0x8f, 0x8f},
  {0x90, 0x90},
  {0x91, 0x91},
  {0x92, 0x92},
  {0x93, 0x93},
  {0x94, 0x94},
  {0x95, 0x95},
  {0x96, 0x96},
  {0x97, 0x97},
  {0x98, 0x98},
  {0x99, 0x99},
  {0x9a, 0x9a},
  {0x9b, 0x9b},
  {0x9c, 0x9c},
  {0x9d, 0x9d},
  {0x9e, 0x9e},
  {0x9f, 0x9f},
  {0xa0, 0xa0},
  {0xa1, 0x401},
  {0xa2, 0x402},
  {0xa3, 0x403},
  {0xa4, 0x404},
  {0xa5, 0x405},
  {0xa6, 0x406},
  {0xa7, 0x407},
  {0xa8, 0x408},
  {0xa9, 0x409},
  {0xaa, 0x40a},
  {0xab, 0x40b},
  {0xac, 0x40c},
  {0xad, 0xad},
  {0xae, 0x40e},
  {0xaf, 0x40f},
  {0xb0, 0x410},
  {0xb1, 0x411},
  {0xb2, 0x412},
  {0xb3, 0x413},
  {0xb4, 0x414},
  {0xb5, 0x415},
  {0xb6, 0x416},
  {0xb7, 0x417},
  {0xb8, 0x418},
  {0xb9, 0x419},
  {0xba, 0x41a},
  {0xbb, 0x41b},
  {0xbc, 0x41c},
  {0xbd, 0x41d},
  {0xbe, 0x41e},
  {0xbf, 0x41f},
  {0xc0, 0x420},
  {0xc1, 0x421},
  {0xc2, 0x422},
  {0xc3, 0x423},
  {0xc4, 0x424},
  {0xc5, 0x425},
  {0xc6, 0x426},
  {0xc7, 0x427},
  {0xc8, 0x428},
  {0xc9, 0x429},
  {0xca, 0x42a},
  {0xcb, 0x42b},
  {0xcc, 0x42c},
  {0xcd, 0x42d},
  {0xce, 0x42e},
  {0xcf, 0x42f},
  {0xd0, 0x430},
  {0xd1, 0x431},
  {0xd2, 0x432},
  {0xd3, 0x433},
  {0xd4, 0x434},
  {0xd5, 0x435},
  {0xd6, 0x436},
  {0xd7, 0x437},
  {0xd8, 0x438},
  {0xd9, 0x439},
  {0xda, 0x43a},
  {0xdb, 0x43b},
  {0xdc, 0x43c},
  {0xdd, 0x43d},
  {0xde, 0x43e},
  {0xdf, 0x43f},
  {0xe0, 0x440},
  {0xe1, 0x441},
  {0xe2, 0x442},
  {0xe3, 0x443},
  {0xe4, 0x444},
  {0xe5, 0x445},
  {0xe6, 0x446},
  {0xe7, 0x447},
  {0xe8, 0x448},
  {0xe9, 0x449},
  {0xea, 0x44a},
  {0xeb, 0x44b},
  {0xec, 0x44c},
  {0xed, 0x44d},
  {0xee, 0x44e},
  {0xef, 0x44f},
  {0xf0, 0x2116},
  {0xf1, 0x451},
  {0xf2, 0x452},
  {0xf3, 0x453},
  {0xf4, 0x454},
  {0xf5, 0x455},
  {0xf6, 0x456},
  {0xf7, 0x457},
  {0xf8, 0x458},
  {0xf9, 0x459},
  {0xfa, 0x45a},
  {0xfb, 0x45b},
  {0xfc, 0x45c},
  {0xfd, 0xa7},
  {0xfe, 0x45e},
  {0xff, 0x45f},
};

static const charset_table_t entity_table_cs_cp1251 {
  {0x0, 0x0},
  {0x1, 0x1},
  {0x2, 0x2},
  {0x3, 0x3},
  {0x4, 0x4},
  {0x5, 0x5},
  {0x6, 0x6},
  {0x7, 0x7},
  {0x8, 0x8},
  {0x9, 0x9},
  {0xa, 0xa},
  {0xb, 0xb},
  {0xc, 0xc},
  {0xd, 0xd},
  {0xe, 0xe},
  {0xf, 0xf},
  {0x10, 0x10},
  {0x11, 0x11},
  {0x12, 0x12},
  {0x13, 0x13},
  {0x14, 0x14},
  {0x15, 0x15},
  {0x16, 0x16},
  {0x17, 0x17},
  {0x18, 0x18},
  {0x19, 0x19},
  {0x1a, 0x1a},
  {0x1b, 0x1b},
  {0x1c, 0x1c},
  {0x1d, 0x1d},
  {0x1e, 0x1e},
  {0x1f, 0x1f},
  {0x20, 0x20},
  {0x21, 0x21},
  {0x22, 0x22},
  {0x23, 0x23},
  {0x24, 0x24},
  {0x25, 0x25},
  {0x26, 0x26},
  {0x27, 0x27},
  {0x28, 0x28},
  {0x29, 0x29},
  {0x2a, 0x2a},
  {0x2b, 0x2b},
  {0x2c, 0x2c},
  {0x2d, 0x2d},
  {0x2e, 0x2e},
  {0x2f, 0x2f},
  {0x30, 0x30},
  {0x31, 0x31},
  {0x32, 0x32},
  {0x33, 0x33},
  {0x34, 0x34},
  {0x35, 0x35},
  {0x36, 0x36},
  {0x37, 0x37},
  {0x38, 0x38},
  {0x39, 0x39},
  {0x3a, 0x3a},
  {0x3b, 0x3b},
  {0x3c, 0x3c},
  {0x3d, 0x3d},
  {0x3e, 0x3e},
  {0x3f, 0x3f},
  {0x40, 0x40},
  {0x41, 0x41},
  {0x42, 0x42},
  {0x43, 0x43},
  {0x44, 0x44},
  {0x45, 0x45},
  {0x46, 0x46},
  {0x47, 0x47},
  {0x48, 0x48},
  {0x49, 0x49},
  {0x4a, 0x4a},
  {0x4b, 0x4b},
  {0x4c, 0x4c},
  {0x4d, 0x4d},
  {0x4e, 0x4e},
  {0x4f, 0x4f},
  {0x50, 0x50},
  {0x51, 0x51},
  {0x52, 0x52},
  {0x53, 0x53},
  {0x54, 0x54},
  {0x55, 0x55},
  {0x56, 0x56},
  {0x57, 0x57},
  {0x58, 0x58},
  {0x59, 0x59},
  {0x5a, 0x5a},
  {0x5b, 0x5b},
  {0x5c, 0x5c},
  {0x5d, 0x5d},
  {0x5e, 0x5e},
  {0x5f, 0x5f},
  {0x60, 0x60},
  {0x61, 0x61},
  {0x62, 0x62},
  {0x63, 0x63},
  {0x64, 0x64},
  {0x65, 0x65},
  {0x66, 0x66},
  {0x67, 0x67},
  {0x68, 0x68},
  {0x69, 0x69},
  {0x6a, 0x6a},
  {0x6b, 0x6b},
  {0x6c, 0x6c},
  {0x6d, 0x6d},
  {0x6e, 0x6e},
  {0x6f, 0x6f},
  {0x70, 0x70},
  {0x71, 0x71},
  {0x72, 0x72},
  {0x73, 0x73},
  {0x74, 0x74},
  {0x75, 0x75},
  {0x76, 0x76},
  {0x77, 0x77},
  {0x78, 0x78},
  {0x79, 0x79},
  {0x7a, 0x7a},
  {0x7b, 0x7b},
  {0x7c, 0x7c},
  {0x7d, 0x7d},
  {0x7e, 0x7e},
  {0x7f, 0x7f},
  {0x80, 0x402},
  {0x81, 0x403},
  {0x82, 0x201a},
  {0x83, 0x453},
  {0x84, 0x201e},
  {0x85, 0x2026},
  {0x86, 0x2020},
  {0x87, 0x2021},
  {0x88, 0x20ac},
  {0x89, 0x2030},
  {0x8a, 0x409},
  {0x8b, 0x2039},
  {0x8c, 0x40a},
  {0x8d, 0x40c},
  {0x8e, 0x40b},
  {0x8f, 0x40f},
  {0x90, 0x452},
  {0x91, 0x2018},
  {0x92, 0x2019},
  {0x93, 0x201c},
  {0x94, 0x201d},
  {0x95, 0x2022},
  {0x96, 0x2013},
  {0x97, 0x2014},
  {0x99, 0x2122},
  {0x9a, 0x459},
  {0x9b, 0x203a},
  {0x9c, 0x45a},
  {0x9d, 0x45c},
  {0x9e, 0x45b},
  {0x9f, 0x45f},
  {0xa0, 0xa0},
  {0xa1, 0x40e},
  {0xa2, 0x45e},
  {0xa3, 0x408},
  {0xa4, 0xa4},
  {0xa5, 0x490},
  {0xa6, 0xa6},
  {0xa7, 0xa7},
  {0xa8, 0x401},
  {0xa9, 0xa9},
  {0xaa, 0x404},
  {0xab, 0xab},
  {0xac, 0xac},
  {0xad, 0xad},
  {0xae, 0xae},
  {0xaf, 0x407},
  {0xb0, 0xb0},
  {0xb1, 0xb1},
  {0xb2, 0x406},
  {0xb3, 0x456},
  {0xb4, 0x491},
  {0xb5, 0xb5},
  {0xb6, 0xb6},
  {0xb7, 0xb7},
  {0xb8, 0x451},
  {0xb9, 0x2116},
  {0xba, 0x454},
  {0xbb, 0xbb},
  {0xbc, 0x458},
  {0xbd, 0x405},
  {0xbe, 0x455},
  {0xbf, 0x457},
  {0xc0, 0x410},
  {0xc1, 0x411},
  {0xc2, 0x412},
  {0xc3, 0x413},
  {0xc4, 0x414},
  {0xc5, 0x415},
  {0xc6, 0x416},
  {0xc7, 0x417},
  {0xc8, 0x418},
  {0xc9, 0x419},
  {0xca, 0x41a},
  {0xcb, 0x41b},
  {0xcc, 0x41c},
  {0xcd, 0x41d},
  {0xce, 0x41e},
  {0xcf, 0x41f},
  {0xd0, 0x420},
  {0xd1, 0x421},
  {0xd2, 0x422},
  {0xd3, 0x423},
  {0xd4, 0x424},
  {0xd5, 0x425},
  {0xd6, 0x426},
  {0xd7, 0x427},
  {0xd8, 0x428},
  {0xd9, 0x429},
  {0xda, 0x42a},
  {0xdb, 0x42b},
  {0xdc, 0x42c},
  {0xdd, 0x42d},
  {0xde, 0x42e},
  {0xdf, 0x42f},
  {0xe0, 0x430},
  {0xe1, 0x431},
  {0xe2, 0x432},
  {0xe3, 0x433},
  {0xe4, 0x434},
  {0xe5, 0x435},
  {0xe6, 0x436},
  {0xe7, 0x437},
  {0xe8, 0x438},
  {0xe9, 0x439},
  {0xea, 0x43a},
  {0xeb, 0x43b},
  {0xec, 0x43c},
  {0xed, 0x43d},
  {0xee, 0x43e},
  {0xef, 0x43f},
  {0xf0, 0x440},
  {0xf1, 0x441},
  {0xf2, 0x442},
  {0xf3, 0x443},
  {0xf4, 0x444},
  {0xf5, 0x445},
  {0xf6, 0x446},
  {0xf7, 0x447},
  {0xf8, 0x448},
  {0xf9, 0x449},
  {0xfa, 0x44a},
  {0xfb, 0x44b},
  {0xfc, 0x44c},
  {0xfd, 0x44d},
  {0xfe, 0x44e},
  {0xff, 0x44f},
};

static const charset_table_t entity_table_cs_cp1252 {
  {0x0, 0x0},
  {0x1, 0x1},
  {0x2, 0x2},
  {0x3, 0x3},
  {0x4, 0x4},
  {0x5, 0x5},
  {0x6, 0x6},
  {0x7, 0x7},
  {0x8, 0x8},
  {0x9, 0x9},
  {0xa, 0xa},
  {0xb, 0xb},
  {0xc, 0xc},
  {0xd, 0xd},
  {0xe, 0xe},
  {0xf, 0xf},
  {0x10, 0x10},
  {0x11, 0x11},
  {0x12, 0x12},
  {0x13, 0x13},
  {0x14, 0x14},
  {0x15, 0x15},
  {0x16, 0x16},
  {0x17, 0x17},
  {0x18, 0x18},
  {0x19, 0x19},
  {0x1a, 0x1a},
  {0x1b, 0x1b},
  {0x1c, 0x1c},
  {0x1d, 0x1d},
  {0x1e, 0x1e},
  {0x1f, 0x1f},
  {0x20, 0x20},
  {0x21, 0x21},
  {0x22, 0x22},
  {0x23, 0x23},
  {0x24, 0x24},
  {0x25, 0x25},
  {0x26, 0x26},
  {0x27, 0x27},
  {0x28, 0x28},
  {0x29, 0x29},
  {0x2a, 0x2a},
  {0x2b, 0x2b},
  {0x2c, 0x2c},
  {0x2d, 0x2d},
  {0x2e, 0x2e},
  {0x2f, 0x2f},
  {0x30, 0x30},
  {0x31, 0x31},
  {0x32, 0x32},
  {0x33, 0x33},
  {0x34, 0x34},
  {0x35, 0x35},
  {0x36, 0x36},
  {0x37, 0x37},
  {0x38, 0x38},
  {0x39, 0x39},
  {0x3a, 0x3a},
  {0x3b, 0x3b},
  {0x3c, 0x3c},
  {0x3d, 0x3d},
  {0x3e, 0x3e},
  {0x3f, 0x3f},
  {0x40, 0x40},
  {0x41, 0x41},
  {0x42, 0x42},
  {0x43, 0x43},
  {0x44, 0x44},
  {0x45, 0x45},
  {0x46, 0x46},
  {0x47, 0x47},
  {0x48, 0x48},
  {0x49, 0x49},
  {0x4a, 0x4a},
  {0x4b, 0x4b},
  {0x4c, 0x4c},
  {0x4d, 0x4d},
  {0x4e, 0x4e},
  {0x4f, 0x4f},
  {0x50, 0x50},
  {0x51, 0x51},
  {0x52, 0x52},
  {0x53, 0x53},
  {0x54, 0x54},
  {0x55, 0x55},
  {0x56, 0x56},
  {0x57, 0x57},
  {0x58, 0x58},
  {0x59, 0x59},
  {0x5a, 0x5a},
  {0x5b, 0x5b},
  {0x5c, 0x5c},
  {0x5d, 0x5d},
  {0x5e, 0x5e},
  {0x5f, 0x5f},
  {0x60, 0x60},
  {0x61, 0x61},
  {0x62, 0x62},
  {0x63, 0x63},
  {0x64, 0x64},
  {0x65, 0x65},
  {0x66, 0x66},
  {0x67, 0x67},
  {0x68, 0x68},
  {0x69, 0x69},
  {0x6a, 0x6a},
  {0x6b, 0x6b},
  {0x6c, 0x6c},
  {0x6d, 0x6d},
  {0x6e, 0x6e},
  {0x6f, 0x6f},
  {0x70, 0x70},
  {0x71, 0x71},
  {0x72, 0x72},
  {0x73, 0x73},
  {0x74, 0x74},
  {0x75, 0x75},
  {0x76, 0x76},
  {0x77, 0x77},
  {0x78, 0x78},
  {0x79, 0x79},
  {0x7a, 0x7a},
  {0x7b, 0x7b},
  {0x7c, 0x7c},
  {0x7d, 0x7d},
  {0x7e, 0x7e},
  {0x7f, 0x7f},
  {0x80, 0x20ac},
  {0x82, 0x201a},
  {0x83, 0x192},
  {0x84, 0x201e},
  {0x85, 0x2026},
  {0x86, 0x2020},
  {0x87, 0x2021},
  {0x88, 0x2c6},
  {0x89, 0x2030},
  {0x8a, 0x160},
  {0x8b, 0x2039},
  {0x8c, 0x152},
  {0x8e, 0x17d},
  {0x91, 0x2018},
  {0x92, 0x2019},
  {0x93, 0x201c},
  {0x94, 0x201d},
  {0x95, 0x2022},
  {0x96, 0x2013},
  {0x97, 0x2014},
  {0x98, 0x2dc},
  {0x99, 0x2122},
  {0x9a, 0x161},
  {0x9b, 0x203a},
  {0x9c, 0x153},
  {0x9e, 0x17e},
  {0x9f, 0x178},
  {0xa0, 0xa0},
  {0xa1, 0xa1},
  {0xa2, 0xa2},
  {0xa3, 0xa3},
  {0xa4, 0xa4},
  {0xa5, 0xa5},
  {0xa6, 0xa6},
  {0xa7, 0xa7},
  {0xa8, 0xa8},
  {0xa9, 0xa9},
  {0xaa, 0xaa},
  {0xab, 0xab},
  {0xac, 0xac},
  {0xad, 0xad},
  {0xae, 0xae},
  {0xaf, 0xaf},
  {0xb0, 0xb0},
  {0xb1, 0xb1},
  {0xb2, 0xb2},
  {0xb3, 0xb3},
  {0xb4, 0xb4},
  {0xb5, 0xb5},
  {0xb6, 0xb6},
  {0xb7, 0xb7},
  {0xb8, 0xb8},
  {0xb9, 0xb9},
  {0xba, 0xba},
  {0xbb, 0xbb},
  {0xbc, 0xbc},
  {0xbd, 0xbd},
  {0xbe, 0xbe},
  {0xbf, 0xbf},
  {0xc0, 0xc0},
  {0xc1, 0xc1},
  {0xc2, 0xc2},
  {0xc3, 0xc3},
  {0xc4, 0xc4},
  {0xc5, 0xc5},
  {0xc6, 0xc6},
  {0xc7, 0xc7},
  {0xc8, 0xc8},
  {0xc9, 0xc9},
  {0xca, 0xca},
  {0xcb, 0xcb},
  {0xcc, 0xcc},
  {0xcd, 0xcd},
  {0xce, 0xce},
  {0xcf, 0xcf},
  {0xd0, 0xd0},
  {0xd1, 0xd1},
  {0xd2, 0xd2},
  {0xd3, 0xd3},
  {0xd4, 0xd4},
  {0xd5, 0xd5},
  {0xd6, 0xd6},
  {0xd7, 0xd7},
  {0xd8, 0xd8},
  {0xd9, 0xd9},
  {0xda, 0xda},
  {0xdb, 0xdb},
  {0xdc, 0xdc},
  {0xdd, 0xdd},
  {0xde, 0xde},
  {0xdf, 0xdf},
  {0xe0, 0xe0},
  {0xe1, 0xe1},
  {0xe2, 0xe2},
  {0xe3, 0xe3},
  {0xe4, 0xe4},
  {0xe5, 0xe5},
  {0xe6, 0xe6},
  {0xe7, 0xe7},
  {0xe8, 0xe8},
  {0xe9, 0xe9},
  {0xea, 0xea},
  {0xeb, 0xeb},
  {0xec, 0xec},
  {0xed, 0xed},
  {0xee, 0xee},
  {0xef, 0xef},
  {0xf0, 0xf0},
  {0xf1, 0xf1},
  {0xf2, 0xf2},
  {0xf3, 0xf3},
  {0xf4, 0xf4},
  {0xf5, 0xf5},
  {0xf6, 0xf6},
  {0xf7, 0xf7},
  {0xf8, 0xf8},
  {0xf9, 0xf9},
  {0xfa, 0xfa},
  {0xfb, 0xfb},
  {0xfc, 0xfc},
  {0xfd, 0xfd},
  {0xfe, 0xfe},
  {0xff, 0xff},
};

static const charset_table_t entity_table_cs_koi8r {
  {0x0, 0x0},
  {0x1, 0x1},
  {0x2, 0x2},
  {0x3, 0x3},
  {0x4, 0x4},
  {0x5, 0x5},
  {0x6, 0x6},
  {0x7, 0x7},
  {0x8, 0x8},
  {0x9, 0x9},
  {0xa, 0xa},
  {0xb, 0xb},
  {0xc, 0xc},
  {0xd, 0xd},
  {0xe, 0xe},
  {0xf, 0xf},
  {0x10, 0x10},
  {0x11, 0x11},
  {0x12, 0x12},
  {0x13, 0x13},
  {0x14, 0x14},
  {0x15, 0x15},
  {0x16, 0x16},
  {0x17, 0x17},
  {0x18, 0x18},
  {0x19, 0x19},
  {0x1a, 0x1a},
  {0x1b, 0x1b},
  {0x1c, 0x1c},
  {0x1d, 0x1d},
  {0x1e, 0x1e},
  {0x1f, 0x1f},
  {0x20, 0x20},
  {0x21, 0x21},
  {0x22, 0x22},
  {0x23, 0x23},
  {0x24, 0x24},
  {0x25, 0x25},
  {0x26, 0x26},
  {0x27, 0x27},
  {0x28, 0x28},
  {0x29, 0x29},
  {0x2a, 0x2a},
  {0x2b, 0x2b},
  {0x2c, 0x2c},
  {0x2d, 0x2d},
  {0x2e, 0x2e},
  {0x2f, 0x2f},
  {0x30, 0x30},
  {0x31, 0x31},
  {0x32, 0x32},
  {0x33, 0x33},
  {0x34, 0x34},
  {0x35, 0x35},
  {0x36, 0x36},
  {0x37, 0x37},
  {0x38, 0x38},
  {0x39, 0x39},
  {0x3a, 0x3a},
  {0x3b, 0x3b},
  {0x3c, 0x3c},
  {0x3d, 0x3d},
  {0x3e, 0x3e},
  {0x3f, 0x3f},
  {0x40, 0x40},
  {0x41, 0x41},
  {0x42, 0x42},
  {0x43, 0x43},
  {0x44, 0x44},
  {0x45, 0x45},
  {0x46, 0x46},
  {0x47, 0x47},
  {0x48, 0x48},
  {0x49, 0x49},
  {0x4a, 0x4a},
  {0x4b, 0x4b},
  {0x4c, 0x4c},
  {0x4d, 0x4d},
  {0x4e, 0x4e},
  {0x4f, 0x4f},
  {0x50, 0x50},
  {0x51, 0x51},
  {0x52, 0x52},
  {0x53, 0x53},
  {0x54, 0x54},
  {0x55, 0x55},
  {0x56, 0x56},
  {0x57, 0x57},
  {0x58, 0x58},
  {0x59, 0x59},
  {0x5a, 0x5a},
  {0x5b, 0x5b},
  {0x5c, 0x5c},
  {0x5d, 0x5d},
  {0x5e, 0x5e},
  {0x5f, 0x5f},
  {0x60, 0x60},
  {0x61, 0x61},
  {0x62, 0x62},
  {0x63, 0x63},
  {0x64, 0x64},
  {0x65, 0x65},
  {0x66, 0x66},
  {0x67, 0x67},
  {0x68, 0x68},
  {0x69, 0x69},
  {0x6a, 0x6a},
  {0x6b, 0x6b},
  {0x6c, 0x6c},
  {0x6d, 0x6d},
  {0x6e, 0x6e},
  {0x6f, 0x6f},
  {0x70, 0x70},
  {0x71, 0x71},
  {0x72, 0x72},
  {0x73, 0x73},
  {0x74, 0x74},
  {0x75, 0x75},
  {0x76, 0x76},
  {0x77, 0x77},
  {0x78, 0x78},
  {0x79, 0x79},
  {0x7a, 0x7a},
  {0x7b, 0x7b},
  {0x7c, 0x7c},
  {0x7d, 0x7d},
  {0x7e, 0x7e},
  {0x7f, 0x7f},
  {0x80, 0x2500},
  {0x81, 0x2502},
  {0x82, 0x250c},
  {0x83, 0x2510},
  {0x84, 0x2514},
  {0x85, 0x2518},
  {0x86, 0x251c},
  {0x87, 0x2524},
  {0x88, 0x252c},
  {0x89, 0x2534},
  {0x8a, 0x253c},
  {0x8b, 0x2580},
  {0x8c, 0x2584},
  {0x8d, 0x2588},
  {0x8e, 0x258c},
  {0x8f, 0x2590},
  {0x90, 0x2591},
  {0x91, 0x2592},
  {0x92, 0x2593},
  {0x93, 0x2320},
  {0x94, 0x25a0},
  {0x95, 0x2219},
  {0x96, 0x221a},
  {0x97, 0x2248},
  {0x98, 0x2264},
  {0x99, 0x2265},
  {0x9a, 0xa0},
  {0x9b, 0x2321},
  {0x9c, 0xb0},
  {0x9d, 0xb2},
  {0x9e, 0xb7},
  {0x9f, 0xf7},
  {0xa0, 0x2550},
  {0xa1, 0x2551},
  {0xa2, 0x2552},
  {0xa3, 0x451},
  {0xa4, 0x2553},
  {0xa5, 0x2554},
  {0xa6, 0x2555},
  {0xa7, 0x2556},
  {0xa8, 0x2557},
  {0xa9, 0x2558},
  {0xaa, 0x2559},
  {0xab, 0x255a},
  {0xac, 0x255b},
  {0xad, 0x255c},
  {0xae, 0x255d},
  {0xaf, 0x255e},
  {0xb0, 0x255f},
  {0xb1, 0x2560},
  {0xb2, 0x2561},
  {0xb3, 0x401},
  {0xb4, 0x2562},
  {0xb5, 0x2563},
  {0xb6, 0x2564},
  {0xb7, 0x2565},
  {0xb8, 0x2566},
  {0xb9, 0x2567},
  {0xba, 0x2568},
  {0xbb, 0x2569},
  {0xbc, 0x256a},
  {0xbd, 0x256b},
  {0xbe, 0x256c},
  {0xbf, 0xa9},
  {0xc0, 0x44e},
  {0xc1, 0x430},
  {0xc2, 0x431},
  {0xc3, 0x446},
  {0xc4, 0x434},
  {0xc5, 0x435},
  {0xc6, 0x444},
  {0xc7, 0x433},
  {0xc8, 0x445},
  {0xc9, 0x438},
  {0xca, 0x439},
  {0xcb, 0x43a},
  {0xcc, 0x43b},
  {0xcd, 0x43c},
  {0xce, 0x43d},
  {0xcf, 0x43e},
  {0xd0, 0x43f},
  {0xd1, 0x44f},
  {0xd2, 0x440},
  {0xd3, 0x441},
  {0xd4, 0x442},
  {0xd5, 0x443},
  {0xd6, 0x436},
  {0xd7, 0x432},
  {0xd8, 0x44c},
  {0xd9, 0x44b},
  {0xda, 0x437},
  {0xdb, 0x448},
  {0xdc, 0x44d},
  {0xdd, 0x449},
  {0xde, 0x447},
  {0xdf, 0x44a},
  {0xe0, 0x42e},
  {0xe1, 0x410},
  {0xe2, 0x411},
  {0xe3, 0x426},
  {0xe4, 0x414},
  {0xe5, 0x415},
  {0xe6, 0x424},
  {0xe7, 0x413},
  {0xe8, 0x425},
  {0xe9, 0x418},
  {0xea, 0x419},
  {0xeb, 0x41a},
  {0xec, 0x41b},
  {0xed, 0x41c},
  {0xee, 0x41d},
  {0xef, 0x41e},
  {0xf0, 0x41f},
  {0xf1, 0x42f},
  {0xf2, 0x420},
  {0xf3, 0x421},
  {0xf4, 0x422},
  {0xf5, 0x423},
  {0xf6, 0x416},
  {0xf7, 0x412},
  {0xf8, 0x42c},
  {0xf9, 0x42b},
  {0xfa, 0x417},
  {0xfb, 0x428},
  {0xfc, 0x42d},
  {0xfd, 0x429},
  {0xfe, 0x427},
  {0xff, 0x42a},
};

static const charset_table_t entity_table_cs_sjis {
};

static const entity_doctype_table_t entity_table_html401 {
  {0xa0, "nbsp"},
  {0xa1, "iexcl"},
  {0xa2, "cent"},
  {0xa3, "pound"},
  {0xa4, "curren"},
  {0xa5, "yen"},
  {0xa6, "brvbar"},
  {0xa7, "sect"},
  {0xa8, "uml"},
  {0xa9, "copy"},
  {0xaa, "ordf"},
  {0xab, "laquo"},
  {0xac, "not"},
  {0xad, "shy"},
  {0xae, "reg"},
  {0xaf, "macr"},
  {0xb0, "deg"},
  {0xb1, "plusmn"},
  {0xb2, "sup2"},
  {0xb3, "sup3"},
  {0xb4, "acute"},
  {0xb5, "micro"},
  {0xb6, "para"},
  {0xb7, "middot"},
  {0xb8, "cedil"},
  {0xb9, "sup1"},
  {0xba, "ordm"},
  {0xbb, "raquo"},
  {0xbc, "frac14"},
  {0xbd, "frac12"},
  {0xbe, "frac34"},
  {0xbf, "iquest"},
  {0xc0, "Agrave"},
  {0xc1, "Aacute"},
  {0xc2, "Acirc"},
  {0xc3, "Atilde"},
  {0xc4, "Auml"},
  {0xc5, "Aring"},
  {0xc6, "AElig"},
  {0xc7, "Ccedil"},
  {0xc8, "Egrave"},
  {0xc9, "Eacute"},
  {0xca, "Ecirc"},
  {0xcb, "Euml"},
  {0xcc, "Igrave"},
  {0xcd, "Iacute"},
  {0xce, "Icirc"},
  {0xcf, "Iuml"},
  {0xd0, "ETH"},
  {0xd1, "Ntilde"},
  {0xd2, "Ograve"},
  {0xd3, "Oacute"},
  {0xd4, "Ocirc"},
  {0xd5, "Otilde"},
  {0xd6, "Ouml"},
  {0xd7, "times"},
  {0xd8, "Oslash"},
  {0xd9, "Ugrave"},
  {0xda, "Uacute"},
  {0xdb, "Ucirc"},
  {0xdc, "Uuml"},
  {0xdd, "Yacute"},
  {0xde, "THORN"},
  {0xdf, "szlig"},
  {0xe0, "agrave"},
  {0xe1, "aacute"},
  {0xe2, "acirc"},
  {0xe3, "atilde"},
  {0xe4, "auml"},
  {0xe5, "aring"},
  {0xe6, "aelig"},
  {0xe7, "ccedil"},
  {0xe8, "egrave"},
  {0xe9, "eacute"},
  {0xea, "ecirc"},
  {0xeb, "euml"},
  {0xec, "igrave"},
  {0xed, "iacute"},
  {0xee, "icirc"},
  {0xef, "iuml"},
  {0xf0, "eth"},
  {0xf1, "ntilde"},
  {0xf2, "ograve"},
  {0xf3, "oacute"},
  {0xf4, "ocirc"},
  {0xf5, "otilde"},
  {0xf6, "ouml"},
  {0xf7, "divide"},
  {0xf8, "oslash"},
  {0xf9, "ugrave"},
  {0xfa, "uacute"},
  {0xfb, "ucirc"},
  {0xfc, "uuml"},
  {0xfd, "yacute"},
  {0xfe, "thorn"},
  {0xff, "yuml"},
  {0x152, "OElig"},
  {0x153, "oelig"},
  {0x160, "Scaron"},
  {0x161, "scaron"},
  {0x178, "Yuml"},
  {0x192, "fnof"},
  {0x2c6, "circ"},
  {0x2dc, "tilde"},
  {0x391, "Alpha"},
  {0x392, "Beta"},
  {0x393, "Gamma"},
  {0x394, "Delta"},
  {0x395, "Epsilon"},
  {0x396, "Zeta"},
  {0x397, "Eta"},
  {0x398, "Theta"},
  {0x399, "Iota"},
  {0x39a, "Kappa"},
  {0x39b, "Lambda"},
  {0x39c, "Mu"},
  {0x39d, "Nu"},
  {0x39e, "Xi"},
  {0x39f, "Omicron"},
  {0x3a0, "Pi"},
  {0x3a1, "Rho"},
  {0x3a3, "Sigma"},
  {0x3a4, "Tau"},
  {0x3a5, "Upsilon"},
  {0x3a6, "Phi"},
  {0x3a7, "Chi"},
  {0x3a8, "Psi"},
  {0x3a9, "Omega"},
  {0x3b1, "alpha"},
  {0x3b2, "beta"},
  {0x3b3, "gamma"},
  {0x3b4, "delta"},
  {0x3b5, "epsilon"},
  {0x3b6, "zeta"},
  {0x3b7, "eta"},
  {0x3b8, "theta"},
  {0x3b9, "iota"},
  {0x3ba, "kappa"},
  {0x3bb, "lambda"},
  {0x3bc, "mu"},
  {0x3bd, "nu"},
  {0x3be, "xi"},
  {0x3bf, "omicron"},
  {0x3c0, "pi"},
  {0x3c1, "rho"},
  {0x3c2, "sigmaf"},
  {0x3c3, "sigma"},
  {0x3c4, "tau"},
  {0x3c5, "upsilon"},
  {0x3c6, "phi"},
  {0x3c7, "chi"},
  {0x3c8, "psi"},
  {0x3c9, "omega"},
  {0x3d1, "thetasym"},
  {0x3d2, "upsih"},
  {0x3d6, "piv"},
  {0x2002, "ensp"},
  {0x2003, "emsp"},
  {0x2009, "thinsp"},
  {0x200c, "zwnj"},
  {0x200d, "zwj"},
  {0x200e, "lrm"},
  {0x200f, "rlm"},
  {0x2013, "ndash"},
  {0x2014, "mdash"},
  {0x2018, "lsquo"},
  {0x2019, "rsquo"},
  {0x201a, "sbquo"},
  {0x201c, "ldquo"},
  {0x201d, "rdquo"},
  {0x201e, "bdquo"},
  {0x2020, "dagger"},
  {0x2021, "Dagger"},
  {0x2022, "bull"},
  {0x2026, "hellip"},
  {0x2030, "permil"},
  {0x2032, "prime"},
  {0x2033, "Prime"},
  {0x2039, "lsaquo"},
  {0x203a, "rsaquo"},
  {0x203e, "oline"},
  {0x2044, "frasl"},
  {0x20ac, "euro"},
  {0x2111, "image"},
  {0x2118, "weierp"},
  {0x211c, "real"},
  {0x2122, "trade"},
  {0x2135, "alefsym"},
  {0x2190, "larr"},
  {0x2191, "uarr"},
  {0x2192, "rarr"},
  {0x2193, "darr"},
  {0x2194, "harr"},
  {0x21b5, "crarr"},
  {0x21d0, "lArr"},
  {0x21d1, "uArr"},
  {0x21d2, "rArr"},
  {0x21d3, "dArr"},
  {0x21d4, "hArr"},
  {0x2200, "forall"},
  {0x2202, "part"},
  {0x2203, "exist"},
  {0x2205, "empty"},
  {0x2207, "nabla"},
  {0x2208, "isin"},
  {0x2209, "notin"},
  {0x220b, "ni"},
  {0x220f, "prod"},
  {0x2211, "sum"},
  {0x2212, "minus"},
  {0x2217, "lowast"},
  {0x221a, "radic"},
  {0x221d, "prop"},
  {0x221e, "infin"},
  {0x2220, "ang"},
  {0x2227, "and"},
  {0x2228, "or"},
  {0x2229, "cap"},
  {0x222a, "cup"},
  {0x222b, "int"},
  {0x2234, "there4"},
  {0x223c, "sim"},
  {0x2245, "cong"},
  {0x2248, "asymp"},
  {0x2260, "ne"},
  {0x2261, "equiv"},
  {0x2264, "le"},
  {0x2265, "ge"},
  {0x2282, "sub"},
  {0x2283, "sup"},
  {0x2284, "nsub"},
  {0x2286, "sube"},
  {0x2287, "supe"},
  {0x2295, "oplus"},
  {0x2297, "otimes"},
  {0x22a5, "perp"},
  {0x22c5, "sdot"},
  {0x2308, "lceil"},
  {0x2309, "rceil"},
  {0x230a, "lfloor"},
  {0x230b, "rfloor"},
  {0x2329, "lang"},
  {0x232a, "rang"},
  {0x25ca, "loz"},
  {0x2660, "spades"},
  {0x2663, "clubs"},
  {0x2665, "hearts"},
  {0x2666, "diams"},
};

static const entity_doctype_table_t entity_table_xhtml {
  {0xa0, "nbsp"},
  {0xa1, "iexcl"},
  {0xa2, "cent"},
  {0xa3, "pound"},
  {0xa4, "curren"},
  {0xa5, "yen"},
  {0xa6, "brvbar"},
  {0xa7, "sect"},
  {0xa8, "uml"},
  {0xa9, "copy"},
  {0xaa, "ordf"},
  {0xab, "laquo"},
  {0xac, "not"},
  {0xad, "shy"},
  {0xae, "reg"},
  {0xaf, "macr"},
  {0xb0, "deg"},
  {0xb1, "plusmn"},
  {0xb2, "sup2"},
  {0xb3, "sup3"},
  {0xb4, "acute"},
  {0xb5, "micro"},
  {0xb6, "para"},
  {0xb7, "middot"},
  {0xb8, "cedil"},
  {0xb9, "sup1"},
  {0xba, "ordm"},
  {0xbb, "raquo"},
  {0xbc, "frac14"},
  {0xbd, "frac12"},
  {0xbe, "frac34"},
  {0xbf, "iquest"},
  {0xc0, "Agrave"},
  {0xc1, "Aacute"},
  {0xc2, "Acirc"},
  {0xc3, "Atilde"},
  {0xc4, "Auml"},
  {0xc5, "Aring"},
  {0xc6, "AElig"},
  {0xc7, "Ccedil"},
  {0xc8, "Egrave"},
  {0xc9, "Eacute"},
  {0xca, "Ecirc"},
  {0xcb, "Euml"},
  {0xcc, "Igrave"},
  {0xcd, "Iacute"},
  {0xce, "Icirc"},
  {0xcf, "Iuml"},
  {0xd0, "ETH"},
  {0xd1, "Ntilde"},
  {0xd2, "Ograve"},
  {0xd3, "Oacute"},
  {0xd4, "Ocirc"},
  {0xd5, "Otilde"},
  {0xd6, "Ouml"},
  {0xd7, "times"},
  {0xd8, "Oslash"},
  {0xd9, "Ugrave"},
  {0xda, "Uacute"},
  {0xdb, "Ucirc"},
  {0xdc, "Uuml"},
  {0xdd, "Yacute"},
  {0xde, "THORN"},
  {0xdf, "szlig"},
  {0xe0, "agrave"},
  {0xe1, "aacute"},
  {0xe2, "acirc"},
  {0xe3, "atilde"},
  {0xe4, "auml"},
  {0xe5, "aring"},
  {0xe6, "aelig"},
  {0xe7, "ccedil"},
  {0xe8, "egrave"},
  {0xe9, "eacute"},
  {0xea, "ecirc"},
  {0xeb, "euml"},
  {0xec, "igrave"},
  {0xed, "iacute"},
  {0xee, "icirc"},
  {0xef, "iuml"},
  {0xf0, "eth"},
  {0xf1, "ntilde"},
  {0xf2, "ograve"},
  {0xf3, "oacute"},
  {0xf4, "ocirc"},
  {0xf5, "otilde"},
  {0xf6, "ouml"},
  {0xf7, "divide"},
  {0xf8, "oslash"},
  {0xf9, "ugrave"},
  {0xfa, "uacute"},
  {0xfb, "ucirc"},
  {0xfc, "uuml"},
  {0xfd, "yacute"},
  {0xfe, "thorn"},
  {0xff, "yuml"},
  {0x152, "OElig"},
  {0x153, "oelig"},
  {0x160, "Scaron"},
  {0x161, "scaron"},
  {0x178, "Yuml"},
  {0x192, "fnof"},
  {0x2c6, "circ"},
  {0x2dc, "tilde"},
  {0x391, "Alpha"},
  {0x392, "Beta"},
  {0x393, "Gamma"},
  {0x394, "Delta"},
  {0x395, "Epsilon"},
  {0x396, "Zeta"},
  {0x397, "Eta"},
  {0x398, "Theta"},
  {0x399, "Iota"},
  {0x39a, "Kappa"},
  {0x39b, "Lambda"},
  {0x39c, "Mu"},
  {0x39d, "Nu"},
  {0x39e, "Xi"},
  {0x39f, "Omicron"},
  {0x3a0, "Pi"},
  {0x3a1, "Rho"},
  {0x3a3, "Sigma"},
  {0x3a4, "Tau"},
  {0x3a5, "Upsilon"},
  {0x3a6, "Phi"},
  {0x3a7, "Chi"},
  {0x3a8, "Psi"},
  {0x3a9, "Omega"},
  {0x3b1, "alpha"},
  {0x3b2, "beta"},
  {0x3b3, "gamma"},
  {0x3b4, "delta"},
  {0x3b5, "epsilon"},
  {0x3b6, "zeta"},
  {0x3b7, "eta"},
  {0x3b8, "theta"},
  {0x3b9, "iota"},
  {0x3ba, "kappa"},
  {0x3bb, "lambda"},
  {0x3bc, "mu"},
  {0x3bd, "nu"},
  {0x3be, "xi"},
  {0x3bf, "omicron"},
  {0x3c0, "pi"},
  {0x3c1, "rho"},
  {0x3c2, "sigmaf"},
  {0x3c3, "sigma"},
  {0x3c4, "tau"},
  {0x3c5, "upsilon"},
  {0x3c6, "phi"},
  {0x3c7, "chi"},
  {0x3c8, "psi"},
  {0x3c9, "omega"},
  {0x3d1, "thetasym"},
  {0x3d2, "upsih"},
  {0x3d6, "piv"},
  {0x2002, "ensp"},
  {0x2003, "emsp"},
  {0x2009, "thinsp"},
  {0x200c, "zwnj"},
  {0x200d, "zwj"},
  {0x200e, "lrm"},
  {0x200f, "rlm"},
  {0x2013, "ndash"},
  {0x2014, "mdash"},
  {0x2018, "lsquo"},
  {0x2019, "rsquo"},
  {0x201a, "sbquo"},
  {0x201c, "ldquo"},
  {0x201d, "rdquo"},
  {0x201e, "bdquo"},
  {0x2020, "dagger"},
  {0x2021, "Dagger"},
  {0x2022, "bull"},
  {0x2026, "hellip"},
  {0x2030, "permil"},
  {0x2032, "prime"},
  {0x2033, "Prime"},
  {0x2039, "lsaquo"},
  {0x203a, "rsaquo"},
  {0x203e, "oline"},
  {0x2044, "frasl"},
  {0x20ac, "euro"},
  {0x2111, "image"},
  {0x2118, "weierp"},
  {0x211c, "real"},
  {0x2122, "trade"},
  {0x2135, "alefsym"},
  {0x2190, "larr"},
  {0x2191, "uarr"},
  {0x2192, "rarr"},
  {0x2193, "darr"},
  {0x2194, "harr"},
  {0x21b5, "crarr"},
  {0x21d0, "lArr"},
  {0x21d1, "uArr"},
  {0x21d2, "rArr"},
  {0x21d3, "dArr"},
  {0x21d4, "hArr"},
  {0x2200, "forall"},
  {0x2202, "part"},
  {0x2203, "exist"},
  {0x2205, "empty"},
  {0x2207, "nabla"},
  {0x2208, "isin"},
  {0x2209, "notin"},
  {0x220b, "ni"},
  {0x220f, "prod"},
  {0x2211, "sum"},
  {0x2212, "minus"},
  {0x2217, "lowast"},
  {0x221a, "radic"},
  {0x221d, "prop"},
  {0x221e, "infin"},
  {0x2220, "ang"},
  {0x2227, "and"},
  {0x2228, "or"},
  {0x2229, "cap"},
  {0x222a, "cup"},
  {0x222b, "int"},
  {0x2234, "there4"},
  {0x223c, "sim"},
  {0x2245, "cong"},
  {0x2248, "asymp"},
  {0x2260, "ne"},
  {0x2261, "equiv"},
  {0x2264, "le"},
  {0x2265, "ge"},
  {0x2282, "sub"},
  {0x2283, "sup"},
  {0x2284, "nsub"},
  {0x2286, "sube"},
  {0x2287, "supe"},
  {0x2295, "oplus"},
  {0x2297, "otimes"},
  {0x22a5, "perp"},
  {0x22c5, "sdot"},
  {0x2308, "lceil"},
  {0x2309, "rceil"},
  {0x230a, "lfloor"},
  {0x230b, "rfloor"},
  {0x2329, "lang"},
  {0x232a, "rang"},
  {0x25ca, "loz"},
  {0x2660, "spades"},
  {0x2663, "clubs"},
  {0x2665, "hearts"},
  {0x2666, "diams"},
};

static const entity_doctype_table_t entity_table_xml1 {
};

static const entity_doctype_table_t entity_table_html5 {
  {0x9, "Tab"},
  {0xa, "NewLine"},
  {0x21, "excl"},
  {0x23, "num"},
  {0x24, "dollar"},
  {0x25, "percnt"},
  {0x28, "lpar"},
  {0x29, "rpar"},
  {0x2a, "ast"},
  {0x2b, "plus"},
  {0x2c, "comma"},
  {0x2e, "period"},
  {0x2f, "sol"},
  {0x3a, "colon"},
  {0x3b, "semi"},
  {0x3d, "equals"},
  {0x3f, "quest"},
  {0x40, "commat"},
  {0x5b, "lbrack"},
  {0x5c, "bsol"},
  {0x5d, "rsqb"},
  {0x5e, "Hat"},
  {0x5f, "lowbar"},
  {0x60, "grave"},
  {0x7b, "lbrace"},
  {0x7c, "vert"},
  {0x7d, "rcub"},
  {0xa0, "nbsp"},
  {0xa1, "iexcl"},
  {0xa2, "cent"},
  {0xa3, "pound"},
  {0xa4, "curren"},
  {0xa5, "yen"},
  {0xa6, "brvbar"},
  {0xa7, "sect"},
  {0xa8, "DoubleDot"},
  {0xa9, "copy"},
  {0xaa, "ordf"},
  {0xab, "laquo"},
  {0xac, "not"},
  {0xad, "shy"},
  {0xae, "reg"},
  {0xaf, "macr"},
  {0xb0, "deg"},
  {0xb1, "plusmn"},
  {0xb2, "sup2"},
  {0xb3, "sup3"},
  {0xb4, "DiacriticalAcute"},
  {0xb5, "micro"},
  {0xb6, "para"},
  {0xb7, "CenterDot"},
  {0xb8, "Cedilla"},
  {0xb9, "sup1"},
  {0xba, "ordm"},
  {0xbb, "raquo"},
  {0xbc, "frac14"},
  {0xbd, "half"},
  {0xbe, "frac34"},
  {0xbf, "iquest"},
  {0xc0, "Agrave"},
  {0xc1, "Aacute"},
  {0xc2, "Acirc"},
  {0xc3, "Atilde"},
  {0xc4, "Auml"},
  {0xc5, "Aring"},
  {0xc6, "AElig"},
  {0xc7, "Ccedil"},
  {0xc8, "Egrave"},
  {0xc9, "Eacute"},
  {0xca, "Ecirc"},
  {0xcb, "Euml"},
  {0xcc, "Igrave"},
  {0xcd, "Iacute"},
  {0xce, "Icirc"},
  {0xcf, "Iuml"},
  {0xd0, "ETH"},
  {0xd1, "Ntilde"},
  {0xd2, "Ograve"},
  {0xd3, "Oacute"},
  {0xd4, "Ocirc"},
  {0xd5, "Otilde"},
  {0xd6, "Ouml"},
  {0xd7, "times"},
  {0xd8, "Oslash"},
  {0xd9, "Ugrave"},
  {0xda, "Uacute"},
  {0xdb, "Ucirc"},
  {0xdc, "Uuml"},
  {0xdd, "Yacute"},
  {0xde, "THORN"},
  {0xdf, "szlig"},
  {0xe0, "agrave"},
  {0xe1, "aacute"},
  {0xe2, "acirc"},
  {0xe3, "atilde"},
  {0xe4, "auml"},
  {0xe5, "aring"},
  {0xe6, "aelig"},
  {0xe7, "ccedil"},
  {0xe8, "egrave"},
  {0xe9, "eacute"},
  {0xea, "ecirc"},
  {0xeb, "euml"},
  {0xec, "igrave"},
  {0xed, "iacute"},
  {0xee, "icirc"},
  {0xef, "iuml"},
  {0xf0, "eth"},
  {0xf1, "ntilde"},
  {0xf2, "ograve"},
  {0xf3, "oacute"},
  {0xf4, "ocirc"},
  {0xf5, "otilde"},
  {0xf6, "ouml"},
  {0xf7, "divide"},
  {0xf8, "oslash"},
  {0xf9, "ugrave"},
  {0xfa, "uacute"},
  {0xfb, "ucirc"},
  {0xfc, "uuml"},
  {0xfd, "yacute"},
  {0xfe, "thorn"},
  {0xff, "yuml"},
  {0x100, "Amacr"},
  {0x101, "amacr"},
  {0x102, "Abreve"},
  {0x103, "abreve"},
  {0x104, "Aogon"},
  {0x105, "aogon"},
  {0x106, "Cacute"},
  {0x107, "cacute"},
  {0x108, "Ccirc"},
  {0x109, "ccirc"},
  {0x10a, "Cdot"},
  {0x10b, "cdot"},
  {0x10c, "Ccaron"},
  {0x10d, "ccaron"},
  {0x10e, "Dcaron"},
  {0x10f, "dcaron"},
  {0x110, "Dstrok"},
  {0x111, "dstrok"},
  {0x112, "Emacr"},
  {0x113, "emacr"},
  {0x116, "Edot"},
  {0x117, "edot"},
  {0x118, "Eogon"},
  {0x119, "eogon"},
  {0x11a, "Ecaron"},
  {0x11b, "ecaron"},
  {0x11c, "Gcirc"},
  {0x11d, "gcirc"},
  {0x11e, "Gbreve"},
  {0x11f, "gbreve"},
  {0x120, "Gdot"},
  {0x121, "gdot"},
  {0x122, "Gcedil"},
  {0x124, "Hcirc"},
  {0x125, "hcirc"},
  {0x126, "Hstrok"},
  {0x127, "hstrok"},
  {0x128, "Itilde"},
  {0x129, "itilde"},
  {0x12a, "Imacr"},
  {0x12b, "imacr"},
  {0x12e, "Iogon"},
  {0x12f, "iogon"},
  {0x130, "Idot"},
  {0x131, "inodot"},
  {0x132, "IJlig"},
  {0x133, "ijlig"},
  {0x134, "Jcirc"},
  {0x135, "jcirc"},
  {0x136, "Kcedil"},
  {0x137, "kcedil"},
  {0x138, "kgreen"},
  {0x139, "Lacute"},
  {0x13a, "lacute"},
  {0x13b, "Lcedil"},
  {0x13c, "lcedil"},
  {0x13d, "Lcaron"},
  {0x13e, "lcaron"},
  {0x13f, "Lmidot"},
  {0x140, "lmidot"},
  {0x141, "Lstrok"},
  {0x142, "lstrok"},
  {0x143, "Nacute"},
  {0x144, "nacute"},
  {0x145, "Ncedil"},
  {0x146, "ncedil"},
  {0x147, "Ncaron"},
  {0x148, "ncaron"},
  {0x149, "napos"},
  {0x14a, "ENG"},
  {0x14b, "eng"},
  {0x14c, "Omacr"},
  {0x14d, "omacr"},
  {0x150, "Odblac"},
  {0x151, "odblac"},
  {0x152, "OElig"},
  {0x153, "oelig"},
  {0x154, "Racute"},
  {0x155, "racute"},
  {0x156, "Rcedil"},
  {0x157, "rcedil"},
  {0x158, "Rcaron"},
  {0x159, "rcaron"},
  {0x15a, "Sacute"},
  {0x15b, "sacute"},
  {0x15c, "Scirc"},
  {0x15d, "scirc"},
  {0x15e, "Scedil"},
  {0x15f, "scedil"},
  {0x160, "Scaron"},
  {0x161, "scaron"},
  {0x162, "Tcedil"},
  {0x163, "tcedil"},
  {0x164, "Tcaron"},
  {0x165, "tcaron"},
  {0x166, "Tstrok"},
  {0x167, "tstrok"},
  {0x168, "Utilde"},
  {0x169, "utilde"},
  {0x16a, "Umacr"},
  {0x16b, "umacr"},
  {0x16c, "Ubreve"},
  {0x16d, "ubreve"},
  {0x16e, "Uring"},
  {0x16f, "uring"},
  {0x170, "Udblac"},
  {0x171, "udblac"},
  {0x172, "Uogon"},
  {0x173, "uogon"},
  {0x174, "Wcirc"},
  {0x175, "wcirc"},
  {0x176, "Ycirc"},
  {0x177, "ycirc"},
  {0x178, "Yuml"},
  {0x179, "Zacute"},
  {0x17a, "zacute"},
  {0x17b, "Zdot"},
  {0x17c, "zdot"},
  {0x17d, "Zcaron"},
  {0x17e, "zcaron"},
  {0x192, "fnof"},
  {0x1b5, "imped"},
  {0x1f5, "gacute"},
  {0x237, "jmath"},
  {0x2c6, "circ"},
  {0x2c7, "Hacek"},
  {0x2d8, "Breve"},
  {0x2d9, "dot"},
  {0x2da, "ring"},
  {0x2db, "ogon"},
  {0x2dc, "DiacriticalTilde"},
  {0x2dd, "DiacriticalDoubleAcute"},
  {0x311, "DownBreve"},
  {0x391, "Alpha"},
  {0x392, "Beta"},
  {0x393, "Gamma"},
  {0x394, "Delta"},
  {0x395, "Epsilon"},
  {0x396, "Zeta"},
  {0x397, "Eta"},
  {0x398, "Theta"},
  {0x399, "Iota"},
  {0x39a, "Kappa"},
  {0x39b, "Lambda"},
  {0x39c, "Mu"},
  {0x39d, "Nu"},
  {0x39e, "Xi"},
  {0x39f, "Omicron"},
  {0x3a0, "Pi"},
  {0x3a1, "Rho"},
  {0x3a3, "Sigma"},
  {0x3a4, "Tau"},
  {0x3a5, "Upsilon"},
  {0x3a6, "Phi"},
  {0x3a7, "Chi"},
  {0x3a8, "Psi"},
  {0x3a9, "Omega"},
  {0x3b1, "alpha"},
  {0x3b2, "beta"},
  {0x3b3, "gamma"},
  {0x3b4, "delta"},
  {0x3b5, "epsi"},
  {0x3b6, "zeta"},
  {0x3b7, "eta"},
  {0x3b8, "theta"},
  {0x3b9, "iota"},
  {0x3ba, "kappa"},
  {0x3bb, "lambda"},
  {0x3bc, "mu"},
  {0x3bd, "nu"},
  {0x3be, "xi"},
  {0x3bf, "omicron"},
  {0x3c0, "pi"},
  {0x3c1, "rho"},
  {0x3c2, "sigmav"},
  {0x3c3, "sigma"},
  {0x3c4, "tau"},
  {0x3c5, "upsi"},
  {0x3c6, "phi"},
  {0x3c7, "chi"},
  {0x3c8, "psi"},
  {0x3c9, "omega"},
  {0x3d1, "thetasym"},
  {0x3d2, "upsih"},
  {0x3d5, "straightphi"},
  {0x3d6, "piv"},
  {0x3dc, "Gammad"},
  {0x3dd, "gammad"},
  {0x3f0, "varkappa"},
  {0x3f1, "rhov"},
  {0x3f5, "straightepsilon"},
  {0x3f6, "backepsilon"},
  {0x401, "IOcy"},
  {0x402, "DJcy"},
  {0x403, "GJcy"},
  {0x404, "Jukcy"},
  {0x405, "DScy"},
  {0x406, "Iukcy"},
  {0x407, "YIcy"},
  {0x408, "Jsercy"},
  {0x409, "LJcy"},
  {0x40a, "NJcy"},
  {0x40b, "TSHcy"},
  {0x40c, "KJcy"},
  {0x40e, "Ubrcy"},
  {0x40f, "DZcy"},
  {0x410, "Acy"},
  {0x411, "Bcy"},
  {0x412, "Vcy"},
  {0x413, "Gcy"},
  {0x414, "Dcy"},
  {0x415, "IEcy"},
  {0x416, "ZHcy"},
  {0x417, "Zcy"},
  {0x418, "Icy"},
  {0x419, "Jcy"},
  {0x41a, "Kcy"},
  {0x41b, "Lcy"},
  {0x41c, "Mcy"},
  {0x41d, "Ncy"},
  {0x41e, "Ocy"},
  {0x41f, "Pcy"},
  {0x420, "Rcy"},
  {0x421, "Scy"},
  {0x422, "Tcy"},
  {0x423, "Ucy"},
  {0x424, "Fcy"},
  {0x425, "KHcy"},
  {0x426, "TScy"},
  {0x427, "CHcy"},
  {0x428, "SHcy"},
  {0x429, "SHCHcy"},
  {0x42a, "HARDcy"},
  {0x42b, "Ycy"},
  {0x42c, "SOFTcy"},
  {0x42d, "Ecy"},
  {0x42e, "YUcy"},
  {0x42f, "YAcy"},
  {0x430, "acy"},
  {0x431, "bcy"},
  {0x432, "vcy"},
  {0x433, "gcy"},
  {0x434, "dcy"},
  {0x435, "iecy"},
  {0x436, "zhcy"},
  {0x437, "zcy"},
  {0x438, "icy"},
  {0x439, "jcy"},
  {0x43a, "kcy"},
  {0x43b, "lcy"},
  {0x43c, "mcy"},
  {0x43d, "ncy"},
  {0x43e, "ocy"},
  {0x43f, "pcy"},
  {0x440, "rcy"},
  {0x441, "scy"},
  {0x442, "tcy"},
  {0x443, "ucy"},
  {0x444, "fcy"},
  {0x445, "khcy"},
  {0x446, "tscy"},
  {0x447, "chcy"},
  {0x448, "shcy"},
  {0x449, "shchcy"},
  {0x44a, "hardcy"},
  {0x44b, "ycy"},
  {0x44c, "softcy"},
  {0x44d, "ecy"},
  {0x44e, "yucy"},
  {0x44f, "yacy"},
  {0x451, "iocy"},
  {0x452, "djcy"},
  {0x453, "gjcy"},
  {0x454, "jukcy"},
  {0x455, "dscy"},
  {0x456, "iukcy"},
  {0x457, "yicy"},
  {0x458, "jsercy"},
  {0x459, "ljcy"},
  {0x45a, "njcy"},
  {0x45b, "tshcy"},
  {0x45c, "kjcy"},
  {0x45e, "ubrcy"},
  {0x45f, "dzcy"},
  {0x2002, "ensp"},
  {0x2003, "emsp"},
  {0x2004, "emsp13"},
  {0x2005, "emsp14"},
  {0x2007, "numsp"},
  {0x2008, "puncsp"},
  {0x2009, "ThinSpace"},
  {0x200a, "hairsp"},
  {0x200b, "ZeroWidthSpace"},
  {0x200c, "zwnj"},
  {0x200d, "zwj"},
  {0x200e, "lrm"},
  {0x200f, "rlm"},
  {0x2010, "hyphen"},
  {0x2013, "ndash"},
  {0x2014, "mdash"},
  {0x2015, "horbar"},
  {0x2016, "Verbar"},
  {0x2018, "OpenCurlyQuote"},
  {0x2019, "rsquo"},
  {0x201a, "sbquo"},
  {0x201c, "OpenCurlyDoubleQuote"},
  {0x201d, "rdquo"},
  {0x201e, "bdquo"},
  {0x2020, "dagger"},
  {0x2021, "Dagger"},
  {0x2022, "bull"},
  {0x2025, "nldr"},
  {0x2026, "hellip"},
  {0x2030, "permil"},
  {0x2031, "pertenk"},
  {0x2032, "prime"},
  {0x2033, "Prime"},
  {0x2034, "tprime"},
  {0x2035, "backprime"},
  {0x2039, "lsaquo"},
  {0x203a, "rsaquo"},
  {0x203e, "oline"},
  {0x2041, "caret"},
  {0x2043, "hybull"},
  {0x2044, "frasl"},
  {0x204f, "bsemi"},
  {0x2057, "qprime"},
  {0x205f, "MediumSpace"},
  {0x2060, "NoBreak"},
  {0x2061, "af"},
  {0x2062, "InvisibleTimes"},
  {0x2063, "ic"},
  {0x20ac, "euro"},
  {0x20db, "TripleDot"},
  {0x20dc, "DotDot"},
  {0x2102, "complexes"},
  {0x2105, "incare"},
  {0x210a, "gscr"},
  {0x210b, "HilbertSpace"},
  {0x210c, "Hfr"},
  {0x210d, "Hopf"},
  {0x210e, "planckh"},
  {0x210f, "planck"},
  {0x2110, "imagline"},
  {0x2111, "Ifr"},
  {0x2112, "lagran"},
  {0x2113, "ell"},
  {0x2115, "naturals"},
  {0x2116, "numero"},
  {0x2117, "copysr"},
  {0x2118, "wp"},
  {0x2119, "primes"},
  {0x211a, "rationals"},
  {0x211b, "realine"},
  {0x211c, "Rfr"},
  {0x211d, "Ropf"},
  {0x211e, "rx"},
  {0x2122, "trade"},
  {0x2124, "Zopf"},
  {0x2127, "mho"},
  {0x2128, "Zfr"},
  {0x2129, "iiota"},
  {0x212c, "Bscr"},
  {0x212d, "Cfr"},
  {0x212f, "escr"},
  {0x2130, "expectation"},
  {0x2131, "Fouriertrf"},
  {0x2133, "Mellintrf"},
  {0x2134, "orderof"},
  {0x2135, "aleph"},
  {0x2136, "beth"},
  {0x2137, "gimel"},
  {0x2138, "daleth"},
  {0x2145, "CapitalDifferentialD"},
  {0x2146, "DifferentialD"},
  {0x2147, "exponentiale"},
  {0x2148, "ImaginaryI"},
  {0x2153, "frac13"},
  {0x2154, "frac23"},
  {0x2155, "frac15"},
  {0x2156, "frac25"},
  {0x2157, "frac35"},
  {0x2158, "frac45"},
  {0x2159, "frac16"},
  {0x215a, "frac56"},
  {0x215b, "frac18"},
  {0x215c, "frac38"},
  {0x215d, "frac58"},
  {0x215e, "frac78"},
  {0x2190, "larr"},
  {0x2191, "uarr"},
  {0x2192, "srarr"},
  {0x2193, "darr"},
  {0x2194, "harr"},
  {0x2195, "UpDownArrow"},
  {0x2196, "nwarrow"},
  {0x2197, "UpperRightArrow"},
  {0x2198, "LowerRightArrow"},
  {0x2199, "swarr"},
  {0x219a, "nleftarrow"},
  {0x219b, "nrarr"},
  {0x219d, "rarrw"},
  {0x219e, "Larr"},
  {0x219f, "Uarr"},
  {0x21a0, "twoheadrightarrow"},
  {0x21a1, "Darr"},
  {0x21a2, "larrtl"},
  {0x21a3, "rarrtl"},
  {0x21a4, "LeftTeeArrow"},
  {0x21a5, "UpTeeArrow"},
  {0x21a6, "map"},
  {0x21a7, "DownTeeArrow"},
  {0x21a9, "larrhk"},
  {0x21aa, "rarrhk"},
  {0x21ab, "larrlp"},
  {0x21ac, "looparrowright"},
  {0x21ad, "harrw"},
  {0x21ae, "nleftrightarrow"},
  {0x21b0, "Lsh"},
  {0x21b1, "rsh"},
  {0x21b2, "ldsh"},
  {0x21b3, "rdsh"},
  {0x21b5, "crarr"},
  {0x21b6, "curvearrowleft"},
  {0x21b7, "curarr"},
  {0x21ba, "olarr"},
  {0x21bb, "orarr"},
  {0x21bc, "leftharpoonup"},
  {0x21bd, "leftharpoondown"},
  {0x21be, "RightUpVector"},
  {0x21bf, "uharl"},
  {0x21c0, "rharu"},
  {0x21c1, "rhard"},
  {0x21c2, "RightDownVector"},
  {0x21c3, "dharl"},
  {0x21c4, "rightleftarrows"},
  {0x21c5, "udarr"},
  {0x21c6, "lrarr"},
  {0x21c7, "llarr"},
  {0x21c8, "upuparrows"},
  {0x21c9, "rrarr"},
  {0x21ca, "downdownarrows"},
  {0x21cb, "leftrightharpoons"},
  {0x21cc, "rightleftharpoons"},
  {0x21cd, "nLeftarrow"},
  {0x21ce, "nhArr"},
  {0x21cf, "nrArr"},
  {0x21d0, "DoubleLeftArrow"},
  {0x21d1, "DoubleUpArrow"},
  {0x21d2, "Implies"},
  {0x21d3, "Downarrow"},
  {0x21d4, "hArr"},
  {0x21d5, "Updownarrow"},
  {0x21d6, "nwArr"},
  {0x21d7, "neArr"},
  {0x21d8, "seArr"},
  {0x21d9, "swArr"},
  {0x21da, "lAarr"},
  {0x21db, "rAarr"},
  {0x21dd, "zigrarr"},
  {0x21e4, "LeftArrowBar"},
  {0x21e5, "RightArrowBar"},
  {0x21f5, "DownArrowUpArrow"},
  {0x21fd, "loarr"},
  {0x21fe, "roarr"},
  {0x21ff, "hoarr"},
  {0x2200, "forall"},
  {0x2201, "comp"},
  {0x2202, "part"},
  {0x2203, "Exists"},
  {0x2204, "nexist"},
  {0x2205, "empty"},
  {0x2207, "nabla"},
  {0x2208, "isinv"},
  {0x2209, "notin"},
  {0x220b, "ReverseElement"},
  {0x220c, "notniva"},
  {0x220f, "prod"},
  {0x2210, "Coproduct"},
  {0x2211, "sum"},
  {0x2212, "minus"},
  {0x2213, "MinusPlus"},
  {0x2214, "plusdo"},
  {0x2216, "ssetmn"},
  {0x2217, "lowast"},
  {0x2218, "compfn"},
  {0x221a, "Sqrt"},
  {0x221d, "prop"},
  {0x221e, "infin"},
  {0x221f, "angrt"},
  {0x2220, "angle"},
  {0x2221, "angmsd"},
  {0x2222, "angsph"},
  {0x2223, "mid"},
  {0x2224, "nshortmid"},
  {0x2225, "shortparallel"},
  {0x2226, "nparallel"},
  {0x2227, "and"},
  {0x2228, "or"},
  {0x2229, "cap"},
  {0x222a, "cup"},
  {0x222b, "Integral"},
  {0x222c, "Int"},
  {0x222d, "tint"},
  {0x222e, "ContourIntegral"},
  {0x222f, "DoubleContourIntegral"},
  {0x2230, "Cconint"},
  {0x2231, "cwint"},
  {0x2232, "cwconint"},
  {0x2233, "awconint"},
  {0x2234, "there4"},
  {0x2235, "Because"},
  {0x2236, "ratio"},
  {0x2237, "Colon"},
  {0x2238, "minusd"},
  {0x223a, "mDDot"},
  {0x223b, "homtht"},
  {0x223c, "sim"},
  {0x223d, "bsim"},
  {0x223e, "ac"},
  {0x223f, "acd"},
  {0x2240, "wr"},
  {0x2241, "NotTilde"},
  {0x2242, "esim"},
  {0x2243, "simeq"},
  {0x2244, "nsime"},
  {0x2245, "TildeFullEqual"},
  {0x2246, "simne"},
  {0x2247, "ncong"},
  {0x2248, "approx"},
  {0x2249, "napprox"},
  {0x224a, "ape"},
  {0x224b, "apid"},
  {0x224c, "bcong"},
  {0x224d, "CupCap"},
  {0x224e, "bump"},
  {0x224f, "HumpEqual"},
  {0x2250, "esdot"},
  {0x2251, "doteqdot"},
  {0x2252, "fallingdotseq"},
  {0x2253, "risingdotseq"},
  {0x2254, "coloneq"},
  {0x2255, "eqcolon"},
  {0x2256, "ecir"},
  {0x2257, "circeq"},
  {0x2259, "wedgeq"},
  {0x225a, "veeeq"},
  {0x225c, "triangleq"},
  {0x225f, "equest"},
  {0x2260, "NotEqual"},
  {0x2261, "Congruent"},
  {0x2262, "NotCongruent"},
  {0x2264, "leq"},
  {0x2265, "ge"},
  {0x2266, "lE"},
  {0x2267, "geqq"},
  {0x2268, "lneqq"},
  {0x2269, "gneqq"},
  {0x226a, "ll"},
  {0x226b, "gg"},
  {0x226c, "between"},
  {0x226d, "NotCupCap"},
  {0x226e, "NotLess"},
  {0x226f, "ngtr"},
  {0x2270, "NotLessEqual"},
  {0x2271, "ngeq"},
  {0x2272, "LessTilde"},
  {0x2273, "GreaterTilde"},
  {0x2274, "nlsim"},
  {0x2275, "ngsim"},
  {0x2276, "lessgtr"},
  {0x2277, "gl"},
  {0x2278, "ntlg"},
  {0x2279, "NotGreaterLess"},
  {0x227a, "prec"},
  {0x227b, "succ"},
  {0x227c, "PrecedesSlantEqual"},
  {0x227d, "succcurlyeq"},
  {0x227e, "precsim"},
  {0x227f, "SucceedsTilde"},
  {0x2280, "npr"},
  {0x2281, "NotSucceeds"},
  {0x2282, "sub"},
  {0x2283, "sup"},
  {0x2284, "nsub"},
  {0x2285, "nsup"},
  {0x2286, "SubsetEqual"},
  {0x2287, "supe"},
  {0x2288, "NotSubsetEqual"},
  {0x2289, "NotSupersetEqual"},
  {0x228a, "subsetneq"},
  {0x228b, "supsetneq"},
  {0x228d, "cupdot"},
  {0x228e, "UnionPlus"},
  {0x228f, "sqsub"},
  {0x2290, "sqsupset"},
  {0x2291, "SquareSubsetEqual"},
  {0x2292, "SquareSupersetEqual"},
  {0x2293, "sqcap"},
  {0x2294, "sqcup"},
  {0x2295, "CirclePlus"},
  {0x2296, "ominus"},
  {0x2297, "CircleTimes"},
  {0x2298, "osol"},
  {0x2299, "CircleDot"},
  {0x229a, "ocir"},
  {0x229b, "oast"},
  {0x229d, "odash"},
  {0x229e, "boxplus"},
  {0x229f, "boxminus"},
  {0x22a0, "timesb"},
  {0x22a1, "sdotb"},
  {0x22a2, "vdash"},
  {0x22a3, "dashv"},
  {0x22a4, "DownTee"},
  {0x22a5, "perp"},
  {0x22a7, "models"},
  {0x22a8, "DoubleRightTee"},
  {0x22a9, "Vdash"},
  {0x22aa, "Vvdash"},
  {0x22ab, "VDash"},
  {0x22ac, "nvdash"},
  {0x22ad, "nvDash"},
  {0x22ae, "nVdash"},
  {0x22af, "nVDash"},
  {0x22b0, "prurel"},
  {0x22b2, "vartriangleleft"},
  {0x22b3, "vrtri"},
  {0x22b4, "LeftTriangleEqual"},
  {0x22b5, "RightTriangleEqual"},
  {0x22b6, "origof"},
  {0x22b7, "imof"},
  {0x22b8, "mumap"},
  {0x22b9, "hercon"},
  {0x22ba, "intcal"},
  {0x22bb, "veebar"},
  {0x22bd, "barvee"},
  {0x22be, "angrtvb"},
  {0x22bf, "lrtri"},
  {0x22c0, "xwedge"},
  {0x22c1, "xvee"},
  {0x22c2, "bigcap"},
  {0x22c3, "bigcup"},
  {0x22c4, "diamond"},
  {0x22c5, "sdot"},
  {0x22c6, "Star"},
  {0x22c7, "divonx"},
  {0x22c8, "bowtie"},
  {0x22c9, "ltimes"},
  {0x22ca, "rtimes"},
  {0x22cb, "lthree"},
  {0x22cc, "rthree"},
  {0x22cd, "backsimeq"},
  {0x22ce, "curlyvee"},
  {0x22cf, "curlywedge"},
  {0x22d0, "Sub"},
  {0x22d1, "Supset"},
  {0x22d2, "Cap"},
  {0x22d3, "Cup"},
  {0x22d4, "pitchfork"},
  {0x22d5, "epar"},
  {0x22d6, "lessdot"},
  {0x22d7, "gtrdot"},
  {0x22d8, "Ll"},
  {0x22d9, "Gg"},
  {0x22da, "lesseqgtr"},
  {0x22db, "gtreqless"},
  {0x22de, "curlyeqprec"},
  {0x22df, "cuesc"},
  {0x22e0, "NotPrecedesSlantEqual"},
  {0x22e1, "NotSucceedsSlantEqual"},
  {0x22e2, "NotSquareSubsetEqual"},
  {0x22e3, "NotSquareSupersetEqual"},
  {0x22e6, "lnsim"},
  {0x22e7, "gnsim"},
  {0x22e8, "precnsim"},
  {0x22e9, "scnsim"},
  {0x22ea, "nltri"},
  {0x22eb, "ntriangleright"},
  {0x22ec, "nltrie"},
  {0x22ed, "NotRightTriangleEqual"},
  {0x22ee, "vellip"},
  {0x22ef, "ctdot"},
  {0x22f0, "utdot"},
  {0x22f1, "dtdot"},
  {0x22f2, "disin"},
  {0x22f3, "isinsv"},
  {0x22f4, "isins"},
  {0x22f5, "isindot"},
  {0x22f6, "notinvc"},
  {0x22f7, "notinvb"},
  {0x22f9, "isinE"},
  {0x22fa, "nisd"},
  {0x22fb, "xnis"},
  {0x22fc, "nis"},
  {0x22fd, "notnivc"},
  {0x22fe, "notnivb"},
  {0x2305, "barwed"},
  {0x2306, "doublebarwedge"},
  {0x2308, "lceil"},
  {0x2309, "RightCeiling"},
  {0x230a, "LeftFloor"},
  {0x230b, "RightFloor"},
  {0x230c, "drcrop"},
  {0x230d, "dlcrop"},
  {0x230e, "urcrop"},
  {0x230f, "ulcrop"},
  {0x2310, "bnot"},
  {0x2312, "profline"},
  {0x2313, "profsurf"},
  {0x2315, "telrec"},
  {0x2316, "target"},
  {0x231c, "ulcorner"},
  {0x231d, "urcorner"},
  {0x231e, "llcorner"},
  {0x231f, "drcorn"},
  {0x2322, "frown"},
  {0x2323, "smile"},
  {0x232d, "cylcty"},
  {0x232e, "profalar"},
  {0x2336, "topbot"},
  {0x233d, "ovbar"},
  {0x233f, "solbar"},
  {0x237c, "angzarr"},
  {0x23b0, "lmoust"},
  {0x23b1, "rmoust"},
  {0x23b4, "OverBracket"},
  {0x23b5, "bbrk"},
  {0x23b6, "bbrktbrk"},
  {0x23dc, "OverParenthesis"},
  {0x23dd, "UnderParenthesis"},
  {0x23de, "OverBrace"},
  {0x23df, "UnderBrace"},
  {0x23e2, "trpezium"},
  {0x23e7, "elinters"},
  {0x2423, "blank"},
  {0x24c8, "oS"},
  {0x2500, "HorizontalLine"},
  {0x2502, "boxv"},
  {0x250c, "boxdr"},
  {0x2510, "boxdl"},
  {0x2514, "boxur"},
  {0x2518, "boxul"},
  {0x251c, "boxvr"},
  {0x2524, "boxvl"},
  {0x252c, "boxhd"},
  {0x2534, "boxhu"},
  {0x253c, "boxvh"},
  {0x2550, "boxH"},
  {0x2551, "boxV"},
  {0x2552, "boxdR"},
  {0x2553, "boxDr"},
  {0x2554, "boxDR"},
  {0x2555, "boxdL"},
  {0x2556, "boxDl"},
  {0x2557, "boxDL"},
  {0x2558, "boxuR"},
  {0x2559, "boxUr"},
  {0x255a, "boxUR"},
  {0x255b, "boxuL"},
  {0x255c, "boxUl"},
  {0x255d, "boxUL"},
  {0x255e, "boxvR"},
  {0x255f, "boxVr"},
  {0x2560, "boxVR"},
  {0x2561, "boxvL"},
  {0x2562, "boxVl"},
  {0x2563, "boxVL"},
  {0x2564, "boxHd"},
  {0x2565, "boxhD"},
  {0x2566, "boxHD"},
  {0x2567, "boxHu"},
  {0x2568, "boxhU"},
  {0x2569, "boxHU"},
  {0x256a, "boxvH"},
  {0x256b, "boxVh"},
  {0x256c, "boxVH"},
  {0x2580, "uhblk"},
  {0x2584, "lhblk"},
  {0x2588, "block"},
  {0x2591, "blk14"},
  {0x2592, "blk12"},
  {0x2593, "blk34"},
  {0x25a1, "Square"},
  {0x25aa, "squarf"},
  {0x25ab, "EmptyVerySmallSquare"},
  {0x25ad, "rect"},
  {0x25ae, "marker"},
  {0x25b1, "fltns"},
  {0x25b3, "bigtriangleup"},
  {0x25b4, "blacktriangle"},
  {0x25b5, "triangle"},
  {0x25b8, "blacktriangleright"},
  {0x25b9, "rtri"},
  {0x25bd, "bigtriangledown"},
  {0x25be, "blacktriangledown"},
  {0x25bf, "triangledown"},
  {0x25c2, "blacktriangleleft"},
  {0x25c3, "ltri"},
  {0x25ca, "lozenge"},
  {0x25cb, "cir"},
  {0x25ec, "tridot"},
  {0x25ef, "bigcirc"},
  {0x25f8, "ultri"},
  {0x25f9, "urtri"},
  {0x25fa, "lltri"},
  {0x25fb, "EmptySmallSquare"},
  {0x25fc, "FilledSmallSquare"},
  {0x2605, "starf"},
  {0x2606, "star"},
  {0x260e, "phone"},
  {0x2640, "female"},
  {0x2642, "male"},
  {0x2660, "spadesuit"},
  {0x2663, "clubs"},
  {0x2665, "hearts"},
  {0x2666, "diamondsuit"},
  {0x266a, "sung"},
  {0x266d, "flat"},
  {0x266e, "natur"},
  {0x266f, "sharp"},
  {0x2713, "check"},
  {0x2717, "cross"},
  {0x2720, "maltese"},
  {0x2736, "sext"},
  {0x2758, "VerticalSeparator"},
  {0x2772, "lbbrk"},
  {0x2773, "rbbrk"},
  {0x27c8, "bsolhsub"},
  {0x27c9, "suphsol"},
  {0x27e6, "LeftDoubleBracket"},
  {0x27e7, "RightDoubleBracket"},
  {0x27e8, "langle"},
  {0x27e9, "RightAngleBracket"},
  {0x27ea, "Lang"},
  {0x27eb, "Rang"},
  {0x27ec, "loang"},
  {0x27ed, "roang"},
  {0x27f5, "longleftarrow"},
  {0x27f6, "LongRightArrow"},
  {0x27f7, "LongLeftRightArrow"},
  {0x27f8, "xlArr"},
  {0x27f9, "DoubleLongRightArrow"},
  {0x27fa, "xhArr"},
  {0x27fc, "xmap"},
  {0x27ff, "dzigrarr"},
  {0x2902, "nvlArr"},
  {0x2903, "nvrArr"},
  {0x2904, "nvHarr"},
  {0x2905, "Map"},
  {0x290c, "lbarr"},
  {0x290d, "bkarow"},
  {0x290e, "lBarr"},
  {0x290f, "dbkarow"},
  {0x2910, "drbkarow"},
  {0x2911, "DDotrahd"},
  {0x2912, "UpArrowBar"},
  {0x2913, "DownArrowBar"},
  {0x2916, "Rarrtl"},
  {0x2919, "latail"},
  {0x291a, "ratail"},
  {0x291b, "lAtail"},
  {0x291c, "rAtail"},
  {0x291d, "larrfs"},
  {0x291e, "rarrfs"},
  {0x291f, "larrbfs"},
  {0x2920, "rarrbfs"},
  {0x2923, "nwarhk"},
  {0x2924, "nearhk"},
  {0x2925, "searhk"},
  {0x2926, "swarhk"},
  {0x2927, "nwnear"},
  {0x2928, "toea"},
  {0x2929, "seswar"},
  {0x292a, "swnwar"},
  {0x2933, "rarrc"},
  {0x2935, "cudarrr"},
  {0x2936, "ldca"},
  {0x2937, "rdca"},
  {0x2938, "cudarrl"},
  {0x2939, "larrpl"},
  {0x293c, "curarrm"},
  {0x293d, "cularrp"},
  {0x2945, "rarrpl"},
  {0x2948, "harrcir"},
  {0x2949, "Uarrocir"},
  {0x294a, "lurdshar"},
  {0x294b, "ldrushar"},
  {0x294e, "LeftRightVector"},
  {0x294f, "RightUpDownVector"},
  {0x2950, "DownLeftRightVector"},
  {0x2951, "LeftUpDownVector"},
  {0x2952, "LeftVectorBar"},
  {0x2953, "RightVectorBar"},
  {0x2954, "RightUpVectorBar"},
  {0x2955, "RightDownVectorBar"},
  {0x2956, "DownLeftVectorBar"},
  {0x2957, "DownRightVectorBar"},
  {0x2958, "LeftUpVectorBar"},
  {0x2959, "LeftDownVectorBar"},
  {0x295a, "LeftTeeVector"},
  {0x295b, "RightTeeVector"},
  {0x295c, "RightUpTeeVector"},
  {0x295d, "RightDownTeeVector"},
  {0x295e, "DownLeftTeeVector"},
  {0x295f, "DownRightTeeVector"},
  {0x2960, "LeftUpTeeVector"},
  {0x2961, "LeftDownTeeVector"},
  {0x2962, "lHar"},
  {0x2963, "uHar"},
  {0x2964, "rHar"},
  {0x2965, "dHar"},
  {0x2966, "luruhar"},
  {0x2967, "ldrdhar"},
  {0x2968, "ruluhar"},
  {0x2969, "rdldhar"},
  {0x296a, "lharul"},
  {0x296b, "llhard"},
  {0x296c, "rharul"},
  {0x296d, "lrhard"},
  {0x296e, "udhar"},
  {0x296f, "ReverseUpEquilibrium"},
  {0x2970, "RoundImplies"},
  {0x2971, "erarr"},
  {0x2972, "simrarr"},
  {0x2973, "larrsim"},
  {0x2974, "rarrsim"},
  {0x2975, "rarrap"},
  {0x2976, "ltlarr"},
  {0x2978, "gtrarr"},
  {0x2979, "subrarr"},
  {0x297b, "suplarr"},
  {0x297c, "lfisht"},
  {0x297d, "rfisht"},
  {0x297e, "ufisht"},
  {0x297f, "dfisht"},
  {0x2985, "lopar"},
  {0x2986, "ropar"},
  {0x298b, "lbrke"},
  {0x298c, "rbrke"},
  {0x298d, "lbrkslu"},
  {0x298e, "rbrksld"},
  {0x298f, "lbrksld"},
  {0x2990, "rbrkslu"},
  {0x2991, "langd"},
  {0x2992, "rangd"},
  {0x2993, "lparlt"},
  {0x2994, "rpargt"},
  {0x2995, "gtlPar"},
  {0x2996, "ltrPar"},
  {0x299a, "vzigzag"},
  {0x299c, "vangrt"},
  {0x299d, "angrtvbd"},
  {0x29a4, "ange"},
  {0x29a5, "range"},
  {0x29a6, "dwangle"},
  {0x29a7, "uwangle"},
  {0x29a8, "angmsdaa"},
  {0x29a9, "angmsdab"},
  {0x29aa, "angmsdac"},
  {0x29ab, "angmsdad"},
  {0x29ac, "angmsdae"},
  {0x29ad, "angmsdaf"},
  {0x29ae, "angmsdag"},
  {0x29af, "angmsdah"},
  {0x29b0, "bemptyv"},
  {0x29b1, "demptyv"},
  {0x29b2, "cemptyv"},
  {0x29b3, "raemptyv"},
  {0x29b4, "laemptyv"},
  {0x29b5, "ohbar"},
  {0x29b6, "omid"},
  {0x29b7, "opar"},
  {0x29b9, "operp"},
  {0x29bb, "olcross"},
  {0x29bc, "odsold"},
  {0x29be, "olcir"},
  {0x29bf, "ofcir"},
  {0x29c0, "olt"},
  {0x29c1, "ogt"},
  {0x29c2, "cirscir"},
  {0x29c3, "cirE"},
  {0x29c4, "solb"},
  {0x29c5, "bsolb"},
  {0x29c9, "boxbox"},
  {0x29cd, "trisb"},
  {0x29ce, "rtriltri"},
  {0x29cf, "LeftTriangleBar"},
  {0x29d0, "RightTriangleBar"},
  {0x29dc, "iinfin"},
  {0x29dd, "infintie"},
  {0x29de, "nvinfin"},
  {0x29e3, "eparsl"},
  {0x29e4, "smeparsl"},
  {0x29e5, "eqvparsl"},
  {0x29eb, "lozf"},
  {0x29f4, "RuleDelayed"},
  {0x29f6, "dsol"},
  {0x2a00, "xodot"},
  {0x2a01, "bigoplus"},
  {0x2a02, "bigotimes"},
  {0x2a04, "biguplus"},
  {0x2a06, "bigsqcup"},
  {0x2a0c, "iiiint"},
  {0x2a0d, "fpartint"},
  {0x2a10, "cirfnint"},
  {0x2a11, "awint"},
  {0x2a12, "rppolint"},
  {0x2a13, "scpolint"},
  {0x2a14, "npolint"},
  {0x2a15, "pointint"},
  {0x2a16, "quatint"},
  {0x2a17, "intlarhk"},
  {0x2a22, "pluscir"},
  {0x2a23, "plusacir"},
  {0x2a24, "simplus"},
  {0x2a25, "plusdu"},
  {0x2a26, "plussim"},
  {0x2a27, "plustwo"},
  {0x2a29, "mcomma"},
  {0x2a2a, "minusdu"},
  {0x2a2d, "loplus"},
  {0x2a2e, "roplus"},
  {0x2a2f, "Cross"},
  {0x2a30, "timesd"},
  {0x2a31, "timesbar"},
  {0x2a33, "smashp"},
  {0x2a34, "lotimes"},
  {0x2a35, "rotimes"},
  {0x2a36, "otimesas"},
  {0x2a37, "Otimes"},
  {0x2a38, "odiv"},
  {0x2a39, "triplus"},
  {0x2a3a, "triminus"},
  {0x2a3b, "tritime"},
  {0x2a3c, "iprod"},
  {0x2a3f, "amalg"},
  {0x2a40, "capdot"},
  {0x2a42, "ncup"},
  {0x2a43, "ncap"},
  {0x2a44, "capand"},
  {0x2a45, "cupor"},
  {0x2a46, "cupcap"},
  {0x2a47, "capcup"},
  {0x2a48, "cupbrcap"},
  {0x2a49, "capbrcup"},
  {0x2a4a, "cupcup"},
  {0x2a4b, "capcap"},
  {0x2a4c, "ccups"},
  {0x2a4d, "ccaps"},
  {0x2a50, "ccupssm"},
  {0x2a53, "And"},
  {0x2a54, "Or"},
  {0x2a55, "andand"},
  {0x2a56, "oror"},
  {0x2a57, "orslope"},
  {0x2a58, "andslope"},
  {0x2a5a, "andv"},
  {0x2a5b, "orv"},
  {0x2a5c, "andd"},
  {0x2a5d, "ord"},
  {0x2a5f, "wedbar"},
  {0x2a66, "sdote"},
  {0x2a6a, "simdot"},
  {0x2a6d, "congdot"},
  {0x2a6e, "easter"},
  {0x2a6f, "apacir"},
  {0x2a70, "apE"},
  {0x2a71, "eplus"},
  {0x2a72, "pluse"},
  {0x2a73, "Esim"},
  {0x2a74, "Colone"},
  {0x2a75, "Equal"},
  {0x2a77, "ddotseq"},
  {0x2a78, "equivDD"},
  {0x2a79, "ltcir"},
  {0x2a7a, "gtcir"},
  {0x2a7b, "ltquest"},
  {0x2a7c, "gtquest"},
  {0x2a7d, "les"},
  {0x2a7e, "ges"},
  {0x2a7f, "lesdot"},
  {0x2a80, "gesdot"},
  {0x2a81, "lesdoto"},
  {0x2a82, "gesdoto"},
  {0x2a83, "lesdotor"},
  {0x2a84, "gesdotol"},
  {0x2a85, "lap"},
  {0x2a86, "gap"},
  {0x2a87, "lne"},
  {0x2a88, "gne"},
  {0x2a89, "lnap"},
  {0x2a8a, "gnap"},
  {0x2a8b, "lesseqqgtr"},
  {0x2a8c, "gEl"},
  {0x2a8d, "lsime"},
  {0x2a8e, "gsime"},
  {0x2a8f, "lsimg"},
  {0x2a90, "gsiml"},
  {0x2a91, "lgE"},
  {0x2a92, "glE"},
  {0x2a93, "lesges"},
  {0x2a94, "gesles"},
  {0x2a95, "els"},
  {0x2a96, "egs"},
  {0x2a97, "elsdot"},
  {0x2a98, "egsdot"},
  {0x2a99, "el"},
  {0x2a9a, "eg"},
  {0x2a9d, "siml"},
  {0x2a9e, "simg"},
  {0x2a9f, "simlE"},
  {0x2aa0, "simgE"},
  {0x2aa1, "LessLess"},
  {0x2aa2, "GreaterGreater"},
  {0x2aa4, "glj"},
  {0x2aa5, "gla"},
  {0x2aa6, "ltcc"},
  {0x2aa7, "gtcc"},
  {0x2aa8, "lescc"},
  {0x2aa9, "gescc"},
  {0x2aaa, "smt"},
  {0x2aab, "lat"},
  {0x2aac, "smte"},
  {0x2aad, "late"},
  {0x2aae, "bumpE"},
  {0x2aaf, "preceq"},
  {0x2ab0, "SucceedsEqual"},
  {0x2ab3, "prE"},
  {0x2ab4, "scE"},
  {0x2ab5, "precneqq"},
  {0x2ab6, "scnE"},
  {0x2ab7, "precapprox"},
  {0x2ab8, "succapprox"},
  {0x2ab9, "precnapprox"},
  {0x2aba, "succnapprox"},
  {0x2abb, "Pr"},
  {0x2abc, "Sc"},
  {0x2abd, "subdot"},
  {0x2abe, "supdot"},
  {0x2abf, "subplus"},
  {0x2ac0, "supplus"},
  {0x2ac1, "submult"},
  {0x2ac2, "supmult"},
  {0x2ac3, "subedot"},
  {0x2ac4, "supedot"},
  {0x2ac5, "subE"},
  {0x2ac6, "supseteqq"},
  {0x2ac7, "subsim"},
  {0x2ac8, "supsim"},
  {0x2acb, "subsetneqq"},
  {0x2acc, "supnE"},
  {0x2acf, "csub"},
  {0x2ad0, "csup"},
  {0x2ad1, "csube"},
  {0x2ad2, "csupe"},
  {0x2ad3, "subsup"},
  {0x2ad4, "supsub"},
  {0x2ad5, "subsub"},
  {0x2ad6, "supsup"},
  {0x2ad7, "suphsub"},
  {0x2ad8, "supdsub"},
  {0x2ad9, "forkv"},
  {0x2ada, "topfork"},
  {0x2adb, "mlcp"},
  {0x2ae4, "Dashv"},
  {0x2ae6, "Vdashl"},
  {0x2ae7, "Barv"},
  {0x2ae8, "vBar"},
  {0x2ae9, "vBarv"},
  {0x2aeb, "Vbar"},
  {0x2aec, "Not"},
  {0x2aed, "bNot"},
  {0x2aee, "rnmid"},
  {0x2aef, "cirmid"},
  {0x2af0, "midcir"},
  {0x2af1, "topcir"},
  {0x2af2, "nhpar"},
  {0x2af3, "parsim"},
  {0x2afd, "parsl"},
  {0xfb00, "fflig"},
  {0xfb01, "filig"},
  {0xfb02, "fllig"},
  {0xfb03, "ffilig"},
  {0xfb04, "ffllig"},
  {0x1d49c, "Ascr"},
  {0x1d49e, "Cscr"},
  {0x1d49f, "Dscr"},
  {0x1d4a2, "Gscr"},
  {0x1d4a5, "Jscr"},
  {0x1d4a6, "Kscr"},
  {0x1d4a9, "Nscr"},
  {0x1d4aa, "Oscr"},
  {0x1d4ab, "Pscr"},
  {0x1d4ac, "Qscr"},
  {0x1d4ae, "Sscr"},
  {0x1d4af, "Tscr"},
  {0x1d4b0, "Uscr"},
  {0x1d4b1, "Vscr"},
  {0x1d4b2, "Wscr"},
  {0x1d4b3, "Xscr"},
  {0x1d4b4, "Yscr"},
  {0x1d4b5, "Zscr"},
  {0x1d4b6, "ascr"},
  {0x1d4b7, "bscr"},
  {0x1d4b8, "cscr"},
  {0x1d4b9, "dscr"},
  {0x1d4bb, "fscr"},
  {0x1d4bd, "hscr"},
  {0x1d4be, "iscr"},
  {0x1d4bf, "jscr"},
  {0x1d4c0, "kscr"},
  {0x1d4c1, "lscr"},
  {0x1d4c2, "mscr"},
  {0x1d4c3, "nscr"},
  {0x1d4c5, "pscr"},
  {0x1d4c6, "qscr"},
  {0x1d4c7, "rscr"},
  {0x1d4c8, "sscr"},
  {0x1d4c9, "tscr"},
  {0x1d4ca, "uscr"},
  {0x1d4cb, "vscr"},
  {0x1d4cc, "wscr"},
  {0x1d4cd, "xscr"},
  {0x1d4ce, "yscr"},
  {0x1d4cf, "zscr"},
  {0x1d504, "Afr"},
  {0x1d505, "Bfr"},
  {0x1d507, "Dfr"},
  {0x1d508, "Efr"},
  {0x1d509, "Ffr"},
  {0x1d50a, "Gfr"},
  {0x1d50d, "Jfr"},
  {0x1d50e, "Kfr"},
  {0x1d50f, "Lfr"},
  {0x1d510, "Mfr"},
  {0x1d511, "Nfr"},
  {0x1d512, "Ofr"},
  {0x1d513, "Pfr"},
  {0x1d514, "Qfr"},
  {0x1d516, "Sfr"},
  {0x1d517, "Tfr"},
  {0x1d518, "Ufr"},
  {0x1d519, "Vfr"},
  {0x1d51a, "Wfr"},
  {0x1d51b, "Xfr"},
  {0x1d51c, "Yfr"},
  {0x1d51e, "afr"},
  {0x1d51f, "bfr"},
  {0x1d520, "cfr"},
  {0x1d521, "dfr"},
  {0x1d522, "efr"},
  {0x1d523, "ffr"},
  {0x1d524, "gfr"},
  {0x1d525, "hfr"},
  {0x1d526, "ifr"},
  {0x1d527, "jfr"},
  {0x1d528, "kfr"},
  {0x1d529, "lfr"},
  {0x1d52a, "mfr"},
  {0x1d52b, "nfr"},
  {0x1d52c, "ofr"},
  {0x1d52d, "pfr"},
  {0x1d52e, "qfr"},
  {0x1d52f, "rfr"},
  {0x1d530, "sfr"},
  {0x1d531, "tfr"},
  {0x1d532, "ufr"},
  {0x1d533, "vfr"},
  {0x1d534, "wfr"},
  {0x1d535, "xfr"},
  {0x1d536, "yfr"},
  {0x1d537, "zfr"},
  {0x1d538, "Aopf"},
  {0x1d539, "Bopf"},
  {0x1d53b, "Dopf"},
  {0x1d53c, "Eopf"},
  {0x1d53d, "Fopf"},
  {0x1d53e, "Gopf"},
  {0x1d540, "Iopf"},
  {0x1d541, "Jopf"},
  {0x1d542, "Kopf"},
  {0x1d543, "Lopf"},
  {0x1d544, "Mopf"},
  {0x1d546, "Oopf"},
  {0x1d54a, "Sopf"},
  {0x1d54b, "Topf"},
  {0x1d54c, "Uopf"},
  {0x1d54d, "Vopf"},
  {0x1d54e, "Wopf"},
  {0x1d54f, "Xopf"},
  {0x1d550, "Yopf"},
  {0x1d552, "aopf"},
  {0x1d553, "bopf"},
  {0x1d554, "copf"},
  {0x1d555, "dopf"},
  {0x1d556, "eopf"},
  {0x1d557, "fopf"},
  {0x1d558, "gopf"},
  {0x1d559, "hopf"},
  {0x1d55a, "iopf"},
  {0x1d55b, "jopf"},
  {0x1d55c, "kopf"},
  {0x1d55d, "lopf"},
  {0x1d55e, "mopf"},
  {0x1d55f, "nopf"},
  {0x1d560, "oopf"},
  {0x1d561, "popf"},
  {0x1d562, "qopf"},
  {0x1d563, "ropf"},
  {0x1d564, "sopf"},
  {0x1d565, "topf"},
  {0x1d566, "uopf"},
  {0x1d567, "vopf"},
  {0x1d568, "wopf"},
  {0x1d569, "xopf"},
  {0x1d56a, "yopf"},
  {0x1d56b, "zopf"},
};

static const entity_multicode_table_t entity_multicode_table_html5 {
  {{0x3c, 0x20d2}, "nvlt"},
  {{0x3d, 0x20e5}, "bne"},
  {{0x3e, 0x20d2}, "nvgt"},
  {{0x66, 0x6a}, "fjlig"},
  {{0x205f, 0x200a}, "ThickSpace"},
  {{0x219d, 0x338}, "nrarrw"},
  {{0x2202, 0x338}, "npart"},
  {{0x2220, 0x20d2}, "nang"},
  {{0x2229, 0xfe00}, "caps"},
  {{0x222a, 0xfe00}, "cups"},
  {{0x223c, 0x20d2}, "nvsim"},
  {{0x223d, 0x331}, "race"},
  {{0x223e, 0x333}, "acE"},
  {{0x2242, 0x338}, "nesim"},
  {{0x224b, 0x338}, "napid"},
  {{0x224d, 0x20d2}, "nvap"},
  {{0x224e, 0x338}, "nbump"},
  {{0x224f, 0x338}, "nbumpe"},
  {{0x2250, 0x338}, "nedot"},
  {{0x2261, 0x20e5}, "bnequiv"},
  {{0x2264, 0x20d2}, "nvle"},
  {{0x2265, 0x20d2}, "nvge"},
  {{0x2266, 0x338}, "nlE"},
  {{0x2267, 0x338}, "NotGreaterFullEqual"},
  {{0x2268, 0xfe00}, "lvertneqq"},
  {{0x2269, 0xfe00}, "gvertneqq"},
  {{0x226a, 0x338}, "nLtv"},
  {{0x226a, 0x20d2}, "nLt"},
  {{0x226b, 0x338}, "NotGreaterGreater"},
  {{0x226b, 0x20d2}, "nGt"},
  {{0x227f, 0x338}, "NotSucceedsTilde"},
  {{0x2282, 0x20d2}, "vnsub"},
  {{0x2283, 0x20d2}, "nsupset"},
  {{0x228a, 0xfe00}, "vsubne"},
  {{0x228b, 0xfe00}, "vsupne"},
  {{0x228f, 0x338}, "NotSquareSubset"},
  {{0x2290, 0x338}, "NotSquareSuperset"},
  {{0x2293, 0xfe00}, "sqcaps"},
  {{0x2294, 0xfe00}, "sqcups"},
  {{0x22b4, 0x20d2}, "nvltrie"},
  {{0x22b5, 0x20d2}, "nvrtrie"},
  {{0x22d8, 0x338}, "nLl"},
  {{0x22d9, 0x338}, "nGg"},
  {{0x22da, 0xfe00}, "lesg"},
  {{0x22db, 0xfe00}, "gesl"},
  {{0x22f5, 0x338}, "notindot"},
  {{0x22f9, 0x338}, "notinE"},
  {{0x2933, 0x338}, "nrarrc"},
  {{0x29cf, 0x338}, "NotLeftTriangleBar"},
  {{0x29d0, 0x338}, "NotRightTriangleBar"},
  {{0x2a6d, 0x338}, "ncongdot"},
  {{0x2a70, 0x338}, "napE"},
  {{0x2a7d, 0x338}, "nles"},
  {{0x2a7e, 0x338}, "nges"},
  {{0x2aa1, 0x338}, "NotNestedLessLess"},
  {{0x2aa2, 0x338}, "NotNestedGreaterGreater"},
  {{0x2aac, 0xfe00}, "smtes"},
  {{0x2aad, 0xfe00}, "lates"},
  {{0x2aaf, 0x338}, "NotPrecedesEqual"},
  {{0x2ab0, 0x338}, "NotSucceedsEqual"},
  {{0x2ac5, 0x338}, "nsubE"},
  {{0x2ac6, 0x338}, "nsupseteqq"},
  {{0x2acb, 0xfe00}, "vsubnE"},
  {{0x2acc, 0xfe00}, "varsupsetneqq"},
  {{0x2afd, 0x20e5}, "nparsl"},
};


const entity_doctype_table_t* get_doctype_entity_table(entity_doctype doctype) {
  switch(doctype) {
    case entity_doctype::html401: return &entity_table_html401;
    case entity_doctype::html5: return &entity_table_html5;
    case entity_doctype::xml1: return &entity_table_xml1;
    case entity_doctype::xhtml: return &entity_table_xhtml;
  }
  not_reached();
}

const charset_table_t* get_charset_table(entity_charset charset) {
  using namespace entity_charset_enum;
  switch (charset) {
    case cs_8859_1: return &entity_table_cs_8859_1;
    case cs_8859_5: return &entity_table_cs_8859_5;
    case cs_cp1251: return &entity_table_cs_cp1251;
    case cs_cp1252: return &entity_table_cs_cp1252;
    case cs_koi8r: return &entity_table_cs_koi8r;
    case cs_sjis: return &entity_table_cs_sjis;
    default: return &entity_table_cs_8859_1;
  }
}

const entity_multicode_table_t* get_multicode_table() {
  return &entity_multicode_table_html5;
}

} // namespace HPHP

